From 767612de4385fca247ff698aa96d8f9836eb7f99 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 16 Oct 2022 21:22:13 +0300 Subject: [PATCH 001/225] Some files + docs Added some docstrings and files for RTD --- docs/Makefile | 20 ++ docs/make.bat | 35 +++ docs/source/conf.py | 102 ++++++++ examples/example_schrodinger.py | 377 +++++++++++++++-------------- examples/example_wave_autograd.py | 2 +- examples/example_wave_periodic.py | 4 +- finite_diffs.py | 118 +++++++--- input_preprocessing.py | 226 ++++++++++++------ metrics.py | 379 ++++++++++++++++++++---------- points_type.py | 63 +++-- 10 files changed, 881 insertions(+), 445 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/make.bat create mode 100644 docs/source/conf.py diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..d0c3cbf1 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 00000000..6247f7e2 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 00000000..9eb4ba15 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,102 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# 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. +# +import os +import datetime +import sys +sys.path.insert(0, os.path.abspath('../..')) +from sphinx.builders.html import StandaloneHTMLBuilder + + +# -- Project information ----------------------------------------------------- + +project = 'TEDEouS' +copyright = '2021-{}, NSS Lab'.format(datetime.datetime.now().year) +author = 'NSS Lab' + +# The full version, including alpha/beta/rc tags +release = '0.0.1' +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx_rtd_theme', + 'sphinx.ext.autodoc', + 'sphinx.ext.coverage', + 'sphinx.ext.napoleon', + 'sphinx.ext.viewcode', + 'sphinx.ext.mathjax', + 'autodocsumm', + 'sphinx.ext.autosummary', + 'sphinx.ext.autodoc.typehints', + 'sphinx.ext.graphviz', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# 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 = [] + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +StandaloneHTMLBuilder.supported_image_types = [ + 'image/svg+xml', + 'image/gif', + 'image/png', + 'image/jpeg' +] +html_theme = "sphinx_rtd_theme" + +# 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". +# html_static_path = ['_static'] + + +# -- Extension configuration ------------------------------------------------- + +# autodoc_inherit_docstrings = False +# napoleon_google_docstring = True +# napoleon_include_init_with_doc = True +napoleon_google_docstring = True +napoleon_numpy_docstring = False +napoleon_include_init_with_doc = False +napoleon_include_private_with_doc = True +napoleon_include_special_with_doc = True +napoleon_use_admonition_for_examples = True +napoleon_use_admonition_for_notes = True +napoleon_use_admonition_for_references = False +napoleon_use_ivar = True +napoleon_use_keyword = True +napoleon_use_param = True +napoleon_use_rtype = True +napoleon_attr_annotations = False + +autodoc_default_options = { + 'members': True, + 'undoc-members': False, + 'show-inheritance': True, + 'member-order': 'bysource', + 'ignore-module-all': True, +} +autoclass_content = 'class' +autodoc_typehints = 'signature' +autodoc_typehints_format = 'short' +autodoc_mock_imports = ['objgraph', 'memory_profiler', 'gprof2dot', 'snakeviz'] diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index c82e083e..b4459f92 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -2,9 +2,11 @@ import numpy as np import matplotlib.pyplot as plt import scipy +import pandas as pd import os import sys +import time os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' @@ -15,196 +17,207 @@ from cache import Model_prepare from input_preprocessing import Equation +result = [] +# for n in range(10,60,10): +for n in range(10,11): + res_i = [] # model(grid)[i] + for i in range(10): + device = torch.device('mps') + + x_grid = np.linspace(-5,5,n+1) + t_grid = np.linspace(0,np.pi/2,n+1) + + x = torch.from_numpy(x_grid) + t = torch.from_numpy(t_grid) + + grid = torch.cartesian_prod(x, t).float() + + grid.to(device) + + """ + To solve schrodinger equation we have to solve system because of its complexity. + Both for the operator and for boundary and initial conditions. + The system of boundary and initial conditions is written as follows: + bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) + etc... + For periodic bconds you need to set parameter bnd_type = 'periodic'. + For 'periodic' you don't need to set bnd_val. + In this case condition will be written as follows: + bnd1_left = ... + bnd1_right = ... + bnd1 = [bnd1_left, bnd1_right] + Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. + bnd_type is not necessary, default = 'boundary values'. + bnd, bnd_val are essentials for setting parameters bconds. + Eventually, whole list of bconds will be written: + bconds = [[bnd1,...,...], etc...] + """ + ## BOUNDARY AND INITIAL CONDITIONS + fun = lambda x: 2/np.cosh(x) + + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + + + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) + + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + + + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] + + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + + + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] + + bop3_real = { + 'du/dx': + { + 'coeff': 1, + 'du/dx': [0], + 'pow': 1, + 'var': 0 + } + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + + bop3_imag = { + 'dv/dx': + { + 'coeff': 1, + 'dv/dx': [0], + 'pow': 1, + 'var': 1 + } + } -device = torch.device('cpu') - -x_grid = np.linspace(-5,5,11) -t_grid = np.linspace(0,np.pi/2,11) - -x = torch.from_numpy(x_grid) -t = torch.from_numpy(t_grid) - -grid = torch.cartesian_prod(x, t).float() - -grid.to(device) - -""" -To solve schrodinger equation we have to solve system because of its complexity. -Both for the operator and for boundary and initial conditions. -The system of boundary and initial conditions is written as follows: -bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) -etc... -For periodic bconds you need to set parameter bnd_type = 'periodic'. -For 'periodic' you don't need to set bnd_val. -In this case condition will be written as follows: -bnd1_left = ... -bnd1_right = ... -bnd1 = [bnd1_left, bnd1_right] -Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. -bnd_type is not necessary, default = 'boundary values'. -bnd, bnd_val are essentials for setting parameters bconds. -Eventually, whole list of bconds will be written: -bconds = [[bnd1,...,...], etc...] -""" -## BOUNDARY AND INITIAL CONDITIONS -fun = lambda x: 2/np.cosh(x) - -# u(x,0) = 2sech(x), v(x,0) = 0 -bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() -bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - - -# u(x,0) = 2sech(x) -bndval1_real = fun(bnd1_real[:,0]) - -# v(x,0) = 0 -bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) - - -# u(-5,t) = u(5,t) -bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_real = [bnd2_real_left,bnd2_real_right] - -# v(-5,t) = v(5,t) -bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_imag = [bnd2_imag_left,bnd2_imag_right] - - -# du/dx (-5,t) = du/dx (5,t) -bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_real = [bnd3_real_left, bnd3_real_right] -bop3_real = { - 'du/dx': + bcond_type = 'periodic' + + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] + + ''' + schrodinger equation: + i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 + real part: + du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v + imag part: + dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u + u = var:0 + v = var:1 + ''' + + schrodinger_eq_real = { + 'du/dt': { - 'coeff': 1, - 'du/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [1], + 'power': 1, 'var': 0 - } -} -# dv/dx (-5,t) = dv/dx (5,t) -bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_imag = [bnd3_imag_left,bnd3_imag_right] - -bop3_imag = { - 'dv/dx': + }, + '1/2*d2v/dx2': + { + 'const': 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 1 + }, + 'v * u**2': + { + 'const': 1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [1, 0] + }, + 'v**3': { - 'coeff': 1, - 'dv/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [None], + 'power': 3, 'var': 1 } -} - - -bcond_type = 'periodic' - -bconds = [[bnd1_real, bndval1_real, 0], - [bnd1_imag, bndval1_imag, 1], - [bnd2_real, 0, bcond_type], - [bnd2_imag, 1, bcond_type], - [bnd3_real, bop3_real, bcond_type], - [bnd3_imag, bop3_imag, bcond_type]] - -''' -schrodinger equation: -i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 -real part: -du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v -imag part: -dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u -u = var:0 -v = var:1 -''' - -schrodinger_eq_real = { - 'du/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 0 - }, - '1/2*d2v/dx2': - { - 'const': 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 1 - }, - 'v * u**2': - { - 'const': 1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [1, 0] - }, - 'v**3': - { - 'const': 1, - 'term': [None], - 'power': 3, - 'var': 1 - } -} -schrodinger_eq_imag = { - 'dv/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 1 - }, - '-1/2*d2u/dx2': - { - 'const': - 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 0 - }, - '-u * v ** 2': - { - 'const': -1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [0, 1] - }, - '-u ** 3': - { - 'const': -1, - 'term': [None], - 'power': 3, - 'var': 0 } + schrodinger_eq_imag = { + 'dv/dt': + { + 'const': 1, + 'term': [1], + 'power': 1, + 'var': 1 + }, + '-1/2*d2u/dx2': + { + 'const': - 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 0 + }, + '-u * v ** 2': + { + 'const': -1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [0, 1] + }, + '-u ** 3': + { + 'const': -1, + 'term': [None], + 'power': 3, + 'var': 0 + } -} - -schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] - -model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) - -equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') - -img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') - -if not(os.path.isdir(img_dir)): - os.mkdir(img_dir) - -model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + } + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + + model = torch.nn.Sequential( + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) + + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') + + img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') + + if not(os.path.isdir(img_dir)): + os.mkdir(img_dir) + + start = time.time() + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, + save_always=True,no_improvement_patience=500,print_every = 500,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + end = time.time() + print('Time taken {} = {}'.format(n, end - start)) + res_i.append(model(grid)) + result.append({'n': n, 'values': res_i, 'time': start - end}) +df = pd.DataFrame(result) +df.to_csv('benchmarking_data/example_schrodinger.csv') +# error_rmse = torch.sqrt(torch.mean(((grid)-model(grid))**2)) \ No newline at end of file diff --git a/examples/example_wave_autograd.py b/examples/example_wave_autograd.py index 33b76fe1..c80186b9 100644 --- a/examples/example_wave_autograd.py +++ b/examples/example_wave_autograd.py @@ -143,5 +143,5 @@ if not(os.path.isdir(img_dir)): os.mkdir(img_dir) -model=Solver(grid, equation, model, 'autograd').solve(use_cache=True,verbose=True,print_every=None,cache_verbose=True,abs_loss=0.001,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) +model=Solver(grid, equation, model, 'autograd').solve(use_cache=True,verbose=True,print_every=500,cache_verbose=True,abs_loss=0.001,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) diff --git a/examples/example_wave_periodic.py b/examples/example_wave_periodic.py index 22d1ab53..5c7428fb 100644 --- a/examples/example_wave_periodic.py +++ b/examples/example_wave_periodic.py @@ -18,7 +18,7 @@ from input_preprocessing import Equation import time -device = torch.device('cpu') +device = torch.device('mps') # Grid x_grid = np.linspace(0,1,21) t_grid = np.linspace(0,1,21) @@ -116,7 +116,7 @@ model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-2, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every=None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every=500,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken 10= ', end - start) \ No newline at end of file diff --git a/finite_diffs.py b/finite_diffs.py index 8aa8342e..8dc5150d 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -1,40 +1,62 @@ from copy import copy +from typing import Union flatten_list = lambda t: [item for sublist in t for item in sublist] class Finite_diffs(): + """ + Implements the Finite Difference method + """ # the idea is simple - central difference changes [0]->([1]-[-1])/(2h) (in terms of grid nodes position) @staticmethod - def finite_diff_shift(diff, axis, mode): - """ - we do the [0]->([1]-[-1])/(2h) transitions to the axes we need - as an example d2u/dxdt - u=[0,0] - u-> du/dx: - - [0,0]->([1,0]-[-1,0])/(2h) - - du/dx->d2u/dxdt: - - [1,0]->([1,1]-[1,-1])/(2h*2tau) - - [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) - - But we do not want to take signs into account (too complex), so - - u-> du/dx: - - [0,0]->[[1,0],[-1,0]] - - du/dx->d2u/dxdt: - - [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] - - Since order is preserved we can compute signs afterwards + def finite_diff_shift(diff, axis: int, mode: str) -> list: + """ 1st order shift + + Parameters + ---------- + diff + values of finite differences + axis + axis + mode + the finite difference type (i.e., forward, backward, central) + + Returns + ------- + diff_list + list with differences """ + # """ + # we do the [0]->([1]-[-1])/(2h) transitions to the axes we need + # as an example d2u/dxdt + # u=[0,0] + # u-> du/dx: + # + # [0,0]->([1,0]-[-1,0])/(2h) + # + # du/dx->d2u/dxdt: + # + # [1,0]->([1,1]-[1,-1])/(2h*2tau) + # + # [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) + # + # But we do not want to take signs into account (too complex), so + # + # u-> du/dx: + # + # [0,0]->[[1,0],[-1,0]] + # + # du/dx->d2u/dxdt: + # + # [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] + # + # Since order is preserved we can compute signs afterwards + # + # """ + diff_p = copy(diff) diff_m = copy(diff) if mode == 'central': @@ -47,7 +69,27 @@ def finite_diff_shift(diff, axis, mode): return [diff_p, diff_m] @staticmethod - def scheme_build(axes, varn, axes_mode): + def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : + """ + Building first order finite-difference stencil. + + Parameters + ---------- + axes + axes that transforms using FDM. (operator in conventional form) + varn + Dimensionality of the problem. + axes_mode + 'central' or combination of 'f' and 'b'. + + Returns + ------- + finite_diff + transformed axes due to finite difference method. + direction_list + list, which contains directions (i.e, 'central', 'f', 'b'). + + """ order = len(axes) finite_diff = [] direction_list = [] @@ -72,15 +114,31 @@ def scheme_build(axes, varn, axes_mode): # or add to the existing pool for diffs in f_diff: diff_list.append(diffs) - # the we go to the next differential if needed + # there we go to the next differential if needed finite_diff = diff_list direction_list.append(axes_mode[axes[i]]) return finite_diff, direction_list @staticmethod - def sign_order(order, mode, h=1 / 2): + def sign_order(order, mode: str, h = 1 / 2) -> list: + """ + Determines the sign of the derivative for the corresponding transformation from Finite_diffs.scheme_build() + + Parameters + ---------- + order: + order of differentiation. + mode: + calculation type of finite difference. + h: + + + Returns + ------- + + """ """ - From transormations above, we always start from +1 (1) + From transformations above, we always start from +1 (1) Every +1 changes to ->[+1,-1] when order of differential rises diff --git a/input_preprocessing.py b/input_preprocessing.py index 6d633bdd..5969e79a 100644 --- a/input_preprocessing.py +++ b/input_preprocessing.py @@ -1,7 +1,7 @@ import torch import numpy as np - +from typing import Union from points_type import Points_type from finite_diffs import Finite_diffs @@ -9,21 +9,23 @@ class EquationMixin(): + """ + Auxiliary class. This one contains some functions that uses in other classes + """ @staticmethod - def operator_unify(operator): + def operator_unify(operator: list) -> list: """ - I just was annoyed adding additional square brackets to the operators. This one allows to make operator form simpler. Parameters ---------- operator : list - Operator in form ... . + operator in input form Returns ------- unified_operator : list - DESCRIPTION. + operator in unified form for preprocessing """ unified_operator = [] @@ -49,33 +51,53 @@ def operator_unify(operator): unified_operator.append([const, vars_set, power,variables]) else: unified_operator.append([const, [vars_set], [power],[variables]]) - # if type(power) is list: - # unified_operator.append([const, vars_set, power]) - # else: - # unified_operator.append([const, [vars_set], [power]]) return unified_operator @staticmethod - def op_dict_to_list(opdict): + def op_dict_to_list(opdict: dict) -> list: + """Transform operator in dict form to list + + Parameters + ---------- + opdict: dict + operator in dict form + + Returns + ------- + oplist: list + operator in list (input) form + + """ return list([list(term.values()) for term in opdict.values()]) @staticmethod - def closest_point(grid,target_point): - min_dist=np.inf - pos=0 - min_pos=0 + def closest_point(grid: torch.Tensor, target_point: float) -> int: + """Defines the closest boundary point to the grid. Auxiliary function. + Parameters + ---------- + grid + array of a n-D points + target_point + boundary point + Returns + ------- + min_pos + position of the boundary point on the grid + """ + min_dist = np.inf + pos = 0 + min_pos = 0 for point in grid: - dist=torch.linalg.norm(point-target_point) - if dist Union[list, int]: """ - Returns the position of the boundary points on the grid Parameters @@ -86,11 +108,11 @@ def bndpos(grid, bnd): boundary Returns ------- - bndposlist : list (int) - positions of boundaty points in grid + bndposlist + list of positions of the boundary points on the grid """ if grid.shape[0] == 1: - grid=grid.reshape(-1,1) + grid = grid.reshape(-1,1) grid = grid.double() def convert_to_double(bnd): @@ -130,7 +152,7 @@ def bnd_unify(bconds): Parameters ---------- bconds : list - + boundary in conventional form (see examples) Returns @@ -183,6 +205,8 @@ def bnd_prepare(self, value): class Equation_NN(EquationMixin, Points_type, Finite_diffs): + """Prepares equation, boundary conditions for NN method. + """ def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_order=2): self.grid = grid self.operator = operator @@ -191,7 +215,7 @@ def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_orde self.inner_order = inner_order self.boundary_order = boundary_order - def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type): + def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type) -> list: """ Function serves applying different schemes to a different point types for entire operator @@ -253,7 +277,7 @@ def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type): def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): """ - Axiluary function that converts integer grid steps in term described in + Auxiliary function that converts integer grid steps in term described in finite-difference scheme to a grids with shifted points, i.e. from field (x,y) -> (x,y+h). @@ -268,7 +292,7 @@ def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): Returns ------- s_grid_list : list - list, where the the steps and signs changed to grid and signs + list, where the steps and signs changed to grid and signs """ s_grid_list = [] for i, shifts in enumerate(finite_diff_scheme): @@ -290,12 +314,8 @@ def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): ---------- fin_diff_op : list operator_to_type_op result. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - true_grid : TYPE, optional - initial grid for coefficient in form of torch.Tensor mapping + grid_points : torch.Tensor + grid with sorted nodes. Returns ------- @@ -331,38 +351,34 @@ def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): return shift_grid_op - def apply_all_operators(self, unified_operator, grid_dict1): + def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: """ + Applies all transformations to operator. + Parameters ---------- - operator : list + unified_operator : list operator_unify result. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - subset : list, optional - grid subsets used for the operator ,e.g. ['central','fb','ff'] - true_grid : TYPE, optional - initial grid for coefficient in form of torch.Tensor mapping + grid_dict : dict + result Points_type.grid_sort Returns ------- operator_list : list final form of differential operator used in the algorithm for subset - grid types + grid types. """ operator_list = [] - nvars =list(grid_dict1.values())[0].shape[-1] - for operator_type in list(grid_dict1.keys()): + nvars = list(grid_dict.values())[0].shape[-1] + for operator_type in list(grid_dict.keys()): b = self.operator_to_type_op(unified_operator, nvars, operator_type) - c = self.type_op_to_grid_shift_op(b, grid_dict1[operator_type]) + c = self.type_op_to_grid_shift_op(b, grid_dict[operator_type]) operator_list.append(c) return operator_list - def operator_prepare(self): + def operator_prepare(self) -> list: """ Changes the operator in conventional form to the input one @@ -413,14 +429,13 @@ def bnd_prepare(self): bconds : list boundary in conventional form (see examples) grid : torch.Tensor - grid with sotred nodes (see grid_prepare) + grid with sorted nodes (see grid_prepare) h : float derivative precision parameter. The default is 0.001. Returns ------- - prepared_bnd : list - + prepared_bcond : list boundary in input form """ @@ -429,7 +444,7 @@ def bnd_prepare(self): bconds1 = self.bnd_unify(self.bconds) if bconds1==None: return None - prepared_bnd = [] + prepared_bcond = [] for bcond in bconds1: b_coord = bcond[0] bop = bcond[1] @@ -446,19 +461,37 @@ def bnd_prepare(self): bop2 = self.apply_all_operators(bop1, grid_dict) else: bop2 = None - prepared_bnd.append([bpos, bop2, bval, bvar, btype]) + prepared_bcond.append([bpos, bop2, bval, bvar, btype]) - return prepared_bnd + return prepared_bcond class Equation_autograd(EquationMixin): + """ Prepares equation for autograd method (i.e., from conventional form to input form). + """ def __init__(self, grid, operator, bconds): self.grid = grid self.operator = operator self.bconds = bconds @staticmethod - def expand_coeffs_autograd(unified_operator, grid): + def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: + """Prepares equation's coefficients for autograd method. + + Parameters + ---------- + unified_operator + result input_preprocessing.EquationMixin.operator_unify + grid + array of a n-D points + + Returns + ------- + autograd_op + prepared autograd operator + + + """ autograd_op=[] for term in unified_operator: coeff1 = term[0] @@ -469,7 +502,6 @@ def expand_coeffs_autograd(unified_operator, grid): coeff = coeff.reshape(-1,1) elif type(coeff1) == torch.Tensor: coeff = coeff1.reshape(-1,1) - prod = term[1] power = term[2] variables = term[3] @@ -501,33 +533,23 @@ def operator_prepare(self): if type(self.operator) == dict: op = self.op_dict_to_list(self.operator) unified_operator = self.operator_unify(op) - prepared_operator = [self.expand_coeffs_autograd(unified_operator, self.grid)] - return prepared_operator def bnd_prepare(self): """ - Parameters - ---------- - bconds : list - boundary in conventional form (see examples) - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. + Prepares boundary conditions from conventional form to input form Returns ------- - prepared_bnd : list - + prepared_bconds : list boundary in input form """ bconds = self.bnd_unify(self.bconds) if bconds==None: return None - prepared_bnd = [] + prepared_bconds = [] for bcond in bconds: b_coord = bcond[0] bop = bcond[1] @@ -543,23 +565,45 @@ def bnd_prepare(self): bop1 = self.operator_unify(bop) else: bop1 = None - prepared_bnd.append([bpos, bop1, bval, var, btype]) - return prepared_bnd + prepared_bconds.append([bpos, bop1, bval, var, btype]) + return prepared_bconds class Equation_mat(EquationMixin): + """ + Prepares equation for matrix optimization method (i.e., from conventional form to input form). + """ def __init__(self, grid, operator, bconds): self.grid = grid self.operator = operator self.bconds = bconds - def operator_prepare(self): + def operator_prepare(self) -> list: + """ + Prepares operator from conventional form to input form + + Returns + ------- + prepared_operator + final form of differential operator used in the algorithm + + + """ if type(self.operator) == dict: operator_list = self.op_dict_to_list(self.operator) unified_operator = self.operator_unify(operator_list) return [unified_operator] - def bnd_prepare(self): + def bnd_prepare(self) -> list: + """ + Prepares boundary conditions from conventional form to input form + + Returns + ------- + prepared_bconds + final form of boundary conditions used in the algorithm + + """ prepared_bconds=[] bconds = self.bnd_unify(self.bconds) for bnd in bconds: @@ -568,8 +612,7 @@ def bnd_prepare(self): bval=bnd[2] var = bnd[3] btype = bnd[4] - bpos=[] - # bpos=bndpos(grid,bpts) + bpos = [] for pt in bpts: if self.grid.shape[0]==1: point_pos=(torch.tensor(self.bndpos(self.grid,pt)),) @@ -589,14 +632,41 @@ def bnd_prepare(self): class Equation(): - def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_order=2): + def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, h = 0.001, inner_order = 1, boundary_order = 2): + """ + + Parameters + ---------- + grid + + operator + + bconds + h + inner_order + boundary_order + """ self.grid = grid self.operator = operator self.bconds = bconds self.h = h self.inner_order = inner_order self.boundary_order = boundary_order - def set_strategy(self, strategy): + def set_strategy(self, strategy: str) -> Union[Equation_NN, Equation_mat, Equation_autograd]: + """Setting the calculation method. + + Parameters + ---------- + strategy: str + Calculation method. (i.e., "NN", "autograd", "mat") + + Returns + ------- + chosen_method : + A given calculation method + + + """ if strategy == 'NN': return Equation_NN(self.grid, self.operator, self.bconds, h=self.h, inner_order=self.inner_order, boundary_order=self.boundary_order) if strategy == 'mat': diff --git a/metrics.py b/metrics.py index 87707ad2..d189688c 100644 --- a/metrics.py +++ b/metrics.py @@ -1,28 +1,34 @@ import torch import numpy as np +from typing import Union + +from torch import Tensor from points_type import Points_type + flatten_list = lambda t: [item for sublist in t for item in sublist] + class DerivativeInt(): - def take_derivative(self, value): + def take_derivative(self, value): raise NotImplementedError + class Derivative_NN(DerivativeInt): def __init__(self, grid, model): self.grid = grid self.model = model - - def take_derivative (self, term): + + def take_derivative(self, term: Union[list, int, torch.Tensor]) -> torch.Tensor: """ - Axiluary function serves for single differential operator resulting field + Auxiliary function serves for single differential operator resulting field derivation Parameters ---------- - model : torch.Sequential + model: torch.Sequential Neural network. - term : TYPE + term: differential operator in conventional form. Returns @@ -42,76 +48,127 @@ def take_derivative (self, term): # number of variables in equation variables = term[4] # initially it is an ones field - der_term = (torch.zeros_like(self.model(shift_grid_list[0][0])[0:,0]) + 1).reshape(-1,1) - + der_term = (torch.zeros_like(self.model(shift_grid_list[0][0])[0:, 0]) + 1).reshape(-1, 1) + for j, scheme in enumerate(shift_grid_list): - # every shift in grid we should add with correspoiding sign, so we start + # every shift in grid we should add with corresponding sign, so we start # from zeros - grid_sum = torch.zeros_like(self.model(scheme[0]))[0:,0].reshape(-1,1) #почему схема от 0? + grid_sum = torch.zeros_like(self.model(scheme[0]))[0:, 0].reshape(-1, 1) for k, grid in enumerate(scheme): # and add grid sequentially - grid_sum += (self.model(grid)[0:,variables[j]]).reshape(-1,1) * s_order_norm_list[j][k] + grid_sum += (self.model(grid)[0:, variables[j]]).reshape(-1, 1) * s_order_norm_list[j][k] # Here we want to apply differential operators for every term in the product der_term = der_term * grid_sum ** power[j] der_term = coeff * der_term - return der_term + class Derivative_autograd(DerivativeInt): + """ + Applies derivative for autograd method. + """ + def __init__(self, grid, model): self.grid = grid self.model = model - + @staticmethod - def nn_autograd_simple(model, points, order,axis=0): - points.requires_grad=True + def nn_autograd_simple(model: torch.nn.Sequential, points: torch.Tensor, order, axis=0) -> torch.Tensor: + """ + + Parameters + ---------- + model: + neural network + points: + + order: + + axis: + + + Returns + ------- + gradient_full + + """ + points.requires_grad = True gradient_full = [] f = model(points).sum(0) for i in range(len(f)): fi = f[i] for j in range(order): grads, = torch.autograd.grad(fi, points, create_graph=True) - fi = grads[:,axis].sum() - gradient_full.append(grads[:,axis].reshape(-1,1)) + fi = grads[:, axis].sum() + gradient_full.append(grads[:, axis].reshape(-1, 1)) gradient_full = torch.hstack(gradient_full) return gradient_full @staticmethod - def nn_autograd_mixed(model, points,axis=[0]): - points.requires_grad=True + def nn_autograd_mixed(model: torch.nn.Sequential, points, axis=[0]): + """ + Computes derivative on the grid using autograd method. + + Parameters + ---------- + model: + neural network + points: + points, where numerical derivative is calculated + axis: + + + + Returns + ------- + gradient_full + + """ + points.requires_grad = True gradient_full = [] f = model(points).sum(0) for i in range(len(f)): fi = f[i] for ax in axis: grads, = torch.autograd.grad(fi, points, create_graph=True) - fi = grads[:,ax].sum() - gradient_full.append(grads[:,axis[-1]].reshape(-1,1)) + fi = grads[:, ax].sum() + gradient_full.append(grads[:, axis[-1]].reshape(-1, 1)) gradient_full = torch.hstack(gradient_full) return gradient_full - def nn_autograd(self, *args, axis=0): - model=args[0] - points=args[1] - if len(args)==3: - order=args[2] - grads=self.nn_autograd_simple(model, points, order,axis=axis) + """ + Wrap just for convenience metrics.Derivative_autograd.nn_autograd_simple and + metrics.Derivative_autograd.nn_autograd_mixed in one function. + + Parameters + ---------- + args + could be 2 or 3 arguments. It depends on which function will be used. + axis + + + Returns + ------- + + """ + model = args[0] + points = args[1] + if len(args) == 3: + order = args[2] + grads = self.nn_autograd_simple(model, points, order, axis=axis) else: - grads=self.nn_autograd_mixed(model, points,axis=axis) + grads = self.nn_autograd_mixed(model, points, axis=axis) return grads - def take_derivative(self, term): """ - Axiluary function serves for single differential operator resulting field + Auxiliary function serves for single differential operator resulting field derivation Parameters ---------- - model : torch.Sequential - Neural network. term : TYPE differential operator in conventional form. @@ -143,139 +200,148 @@ def take_derivative(self, term): return der_term + class Derivative_mat(DerivativeInt): def __init__(self, grid, model): self.grid = grid self.model = model - + @staticmethod - def derivative_1d(model,grid): + def derivative_1d(model: torch.Tensor, grid: torch.Tensor): + """ + Computes derivative in one dimension for matrix method. + + Parameters + ---------- + model + + grid + + Returns + ------- + + """ # print('1d>2d') - u=model.reshape(-1) - x=grid.reshape(-1) - + u = model.reshape(-1) + x = grid.reshape(-1) + # du_forward = (u-torch.roll(u, -1)) / (x-torch.roll(x, -1)) - + # du_backward = (torch.roll(u, 1) - u) / (torch.roll(x, 1) - x) - du = (torch.roll(u, 1) - torch.roll(u, -1))/(torch.roll(x, 1)-torch.roll(x, -1)) - du[0] = (u[0]-u[1])/(x[0]-x[1]) - du[-1] = (u[-1]-u[-2])/(x[-1]-x[-2]) - - du=du.reshape(model.shape) - + du = (torch.roll(u, 1) - torch.roll(u, -1)) / (torch.roll(x, 1) - torch.roll(x, -1)) + du[0] = (u[0] - u[1]) / (x[0] - x[1]) + du[-1] = (u[-1] - u[-2]) / (x[-1] - x[-2]) + + du = du.reshape(model.shape) + return du @staticmethod def derivative(u_tensor, h_tensor, axis, scheme_order=1, boundary_order=1): - #print('shape=',u_tensor.shape) - if (u_tensor.shape[0]==1): - du = Derivative_mat.derivative_1d(u_tensor,h_tensor) + # print('shape=',u_tensor.shape) + if (u_tensor.shape[0] == 1): + du = Derivative_mat.derivative_1d(u_tensor, h_tensor) return du u_tensor = torch.transpose(u_tensor, 0, axis) h_tensor = torch.transpose(h_tensor, 0, axis) - - - if scheme_order==1: + + if scheme_order == 1: du_forward = (-torch.roll(u_tensor, -1) + u_tensor) / \ - (-torch.roll(h_tensor, -1) + h_tensor) - + (-torch.roll(h_tensor, -1) + h_tensor) + du_backward = (torch.roll(u_tensor, 1) - u_tensor) / \ - (torch.roll(h_tensor, 1) - h_tensor) + (torch.roll(h_tensor, 1) - h_tensor) du = (1 / 2) * (du_forward + du_backward) - + # dh=h_tensor[0,1]-h_tensor[0,0] - - if scheme_order==2: + + if scheme_order == 2: u_shift_down_1 = torch.roll(u_tensor, 1) u_shift_down_2 = torch.roll(u_tensor, 2) u_shift_up_1 = torch.roll(u_tensor, -1) u_shift_up_2 = torch.roll(u_tensor, -2) - + h_shift_down_1 = torch.roll(h_tensor, 1) h_shift_down_2 = torch.roll(h_tensor, 2) h_shift_up_1 = torch.roll(h_tensor, -1) h_shift_up_2 = torch.roll(h_tensor, -2) - - h1_up=h_shift_up_1-h_tensor - h2_up=h_shift_up_2-h_shift_up_1 - - h1_down=h_tensor-h_shift_down_1 - h2_down=h_shift_down_1-h_shift_down_2 - - a_up=-(2*h1_up+h2_up)/(h1_up*(h1_up+h2_up)) - b_up=(h2_up+h1_up)/(h1_up*h2_up) - c_up=-h1_up/(h2_up*(h1_up+h2_up)) - - a_down=(2*h1_down+h2_down)/(h1_down*(h1_down+h2_down)) - b_down=-(h2_down+h1_down)/(h1_down*h2_down) - c_down=h1_down/(h2_down*(h1_down+h2_down)) - - du_forward=a_up*u_tensor+b_up*u_shift_up_1+c_up*u_shift_up_2 - du_backward=a_down*u_tensor+b_down*u_shift_down_1+c_down*u_shift_down_2 + + h1_up = h_shift_up_1 - h_tensor + h2_up = h_shift_up_2 - h_shift_up_1 + + h1_down = h_tensor - h_shift_down_1 + h2_down = h_shift_down_1 - h_shift_down_2 + + a_up = -(2 * h1_up + h2_up) / (h1_up * (h1_up + h2_up)) + b_up = (h2_up + h1_up) / (h1_up * h2_up) + c_up = -h1_up / (h2_up * (h1_up + h2_up)) + + a_down = (2 * h1_down + h2_down) / (h1_down * (h1_down + h2_down)) + b_down = -(h2_down + h1_down) / (h1_down * h2_down) + c_down = h1_down / (h2_down * (h1_down + h2_down)) + + du_forward = a_up * u_tensor + b_up * u_shift_up_1 + c_up * u_shift_up_2 + du_backward = a_down * u_tensor + b_down * u_shift_down_1 + c_down * u_shift_down_2 du = (1 / 2) * (du_forward + du_backward) - - - if boundary_order==1: - if scheme_order==1: + + if boundary_order == 1: + if scheme_order == 1: du[:, 0] = du_forward[:, 0] du[:, -1] = du_backward[:, -1] - elif scheme_order==2: + elif scheme_order == 2: du_forward = (-torch.roll(u_tensor, -1) + u_tensor) / \ - (-torch.roll(h_tensor, -1) + h_tensor) - + (-torch.roll(h_tensor, -1) + h_tensor) + du_backward = (torch.roll(u_tensor, 1) - u_tensor) / \ - (torch.roll(h_tensor, 1) - h_tensor) + (torch.roll(h_tensor, 1) - h_tensor) du[:, 0] = du_forward[:, 0] du[:, 1] = du_forward[:, 1] du[:, -1] = du_backward[:, -1] du[:, -2] = du_backward[:, -2] - elif boundary_order==2: - if scheme_order==2: + elif boundary_order == 2: + if scheme_order == 2: du[:, 0] = du_forward[:, 0] du[:, 1] = du_forward[:, 1] du[:, -1] = du_backward[:, -1] du[:, -2] = du_backward[:, -2] - elif scheme_order==1: + elif scheme_order == 1: u_shift_down_1 = torch.roll(u_tensor, 1) u_shift_down_2 = torch.roll(u_tensor, 2) u_shift_up_1 = torch.roll(u_tensor, -1) u_shift_up_2 = torch.roll(u_tensor, -2) - + h_shift_down_1 = torch.roll(h_tensor, 1) h_shift_down_2 = torch.roll(h_tensor, 2) h_shift_up_1 = torch.roll(h_tensor, -1) h_shift_up_2 = torch.roll(h_tensor, -2) - - h1_up=h_shift_up_1-h_tensor - h2_up=h_shift_up_2-h_shift_up_1 - - h1_down=h_tensor-h_shift_down_1 - h2_down=h_shift_down_1-h_shift_down_2 - - - a_up=-(2*h1_up+h2_up)/(h1_up*(h1_up+h2_up)) - b_up=(h2_up+h1_up)/(h1_up*h2_up) - c_up=-h1_up/(h2_up*(h1_up+h2_up)) - - a_down=(2*h1_up+h2_up)/(h1_down*(h1_down+h2_down)) - b_down=-(h2_down+h1_down)/(h1_down*h2_down) - c_down=h1_down/(h2_down*(h1_down+h2_down)) - - - du_forward=a_up*u_tensor+b_up*u_shift_up_1+c_up*u_shift_up_2 - du_backward=a_down*u_tensor+b_down*u_shift_down_1+c_down*u_shift_down_2 + + h1_up = h_shift_up_1 - h_tensor + h2_up = h_shift_up_2 - h_shift_up_1 + + h1_down = h_tensor - h_shift_down_1 + h2_down = h_shift_down_1 - h_shift_down_2 + + a_up = -(2 * h1_up + h2_up) / (h1_up * (h1_up + h2_up)) + b_up = (h2_up + h1_up) / (h1_up * h2_up) + c_up = -h1_up / (h2_up * (h1_up + h2_up)) + + a_down = (2 * h1_up + h2_up) / (h1_down * (h1_down + h2_down)) + b_down = -(h2_down + h1_down) / (h1_down * h2_down) + c_down = h1_down / (h2_down * (h1_down + h2_down)) + + du_forward = a_up * u_tensor + b_up * u_shift_up_1 + c_up * u_shift_up_2 + du_backward = a_down * u_tensor + b_down * u_shift_down_1 + c_down * u_shift_down_2 du[:, 0] = du_forward[:, 0] du[:, -1] = du_backward[:, -1] - + du = torch.transpose(du, 0, axis) return du - def take_derivative(self, term): """ - Axiluary function serves for single differential operator resulting field + Auxiliary function serves for single differential operator resulting field derivation Parameters @@ -300,13 +366,13 @@ def take_derivative(self, term): # initially it is an ones field der_term = torch.zeros_like(self.model) + 1 for j, scheme in enumerate(operator_product): - prod=self.model - if scheme!=[None]: + prod = self.model + if scheme != [None]: for axis in scheme: if axis is None: continue h = self.grid[axis] - prod=self.derivative(prod, h, axis, scheme_order=1, boundary_order=1) + prod = self.derivative(prod, h, axis, scheme_order=1, boundary_order=1) der_term = der_term * prod ** power[j] if callable(coeff) is True: der_term = coeff(self.grid) * der_term @@ -314,17 +380,33 @@ def take_derivative(self, term): der_term = coeff * der_term return der_term + class Derivative(): def __init__(self, grid, model): self.grid = grid self.model = model def set_strategy(self, strategy): + """ + Setting the calculation method. + + Parameters + ---------- + strategy: str + Calculation method. (i.e., "NN", "autograd", "mat") + + Returns + ------- + prepared_equation : + equation in input form for a given calculation method + + + """ if strategy == 'NN': return Derivative_NN(self.grid, self.model) elif strategy == 'autograd': - return Derivative_autograd(self.grid, self.model) + return Derivative_autograd(self.grid, self.model) elif strategy == 'mat': return Derivative_mat(self.grid, self.model) @@ -365,19 +447,22 @@ def apply_operator(self, operator): total = dif return total - def apply_bconds_set(self, operator_set): + def apply_bconds_set(self, operator_set) -> torch.Tensor: """ Deciphers equation in a whole grid to a field. + Parameters ---------- model : torch.Sequential Neural network. - operator : list + operator_set : list Multiple (len(subset)>=1) operators in input form. See input_preprocessing.operator_prepare() Returns ------- - total : torch.Tensor + field_part: + + """ field_part = [] for operator in operator_set: @@ -385,19 +470,32 @@ def apply_bconds_set(self, operator_set): field_part = torch.cat(field_part) return field_part - def b_op_val_calc(self, bcond): + def b_op_val_calc(self, bcond: list) -> torch.Tensor: + """ + Auxiliary function. Serves only to evaluate operator on the boundary. + + Parameters + ---------- + bcond: + terms of prepared boundary conditions (see input_preprocessing.bnd_prepare) in input form. + Returns + ------- + b_op_val + calculated operator on the boundary. + + """ b_pos = bcond[0] bop = bcond[1] - truebval = bcond[2].reshape(-1,1) + truebval = bcond[2].reshape(-1, 1) var = bcond[3] btype = bcond[4] if bop == None or bop == [[1, [None], 1]]: if self.mode == 'NN': grid_dict = Points_type.grid_sort(self.grid) sorted_grid = torch.cat(list(grid_dict.values())) - b_op_val = self.model(sorted_grid)[:,var].reshape(-1,1) + b_op_val = self.model(sorted_grid)[:, var].reshape(-1, 1) elif self.mode == 'autograd': - b_op_val = self.model(self.grid)[:,var].reshape(-1,1) + b_op_val = self.model(self.grid)[:, var].reshape(-1, 1) elif self.mode == 'mat': b_op_val = self.model else: @@ -407,16 +505,26 @@ def b_op_val_calc(self, bcond): b_op_val = self.apply_operator(bop) return b_op_val - def apply_bconds_operator(self): + def apply_bconds_operator(self) -> tuple[torch.Tensor, torch.Tensor]: + """ + Auxiliary function. Serves only to evaluate boundary values and true boundary values. + + Returns + ------- + b_val: + calculated model boundary values + true_b_val: + true grid boundary values + """ true_b_val_list = [] b_val_list = [] - + # we apply no boundary conditions operators if they are all None for bcond in self.prepared_bconds: b_pos = bcond[0] bop = bcond[1] - truebval = bcond[2].reshape(-1,1) + truebval = bcond[2].reshape(-1, 1) var = bcond[3] btype = bcond[4] if btype == 'boundary values': @@ -438,11 +546,25 @@ def apply_bconds_operator(self): b_val -= b_op_val[b_pos[i]] b_val_list.append(b_val) true_b_val = torch.cat(true_b_val_list) - b_val=torch.cat(b_val_list).reshape(-1,1) + b_val = torch.cat(b_val_list).reshape(-1, 1) return b_val, true_b_val - def loss_evaluation(self, lambda_bound=10): + def loss_evaluation(self, lambda_bound=10) -> Tensor: + """ + Computes loss + + Parameters + ---------- + lambda_bound: int + an arbitrary chosen constant, influence only convergence speed + + Returns + ------- + loss + loss + + """ if self.mode == 'mat' or self.mode == 'autograd': if self.prepared_bconds == None: print('No bconds is not possible, returning infinite loss') @@ -458,10 +580,9 @@ def loss_evaluation(self, lambda_bound=10): for i in range(num_of_eq): op_list.append(self.apply_operator(self.prepared_operator[i])) - op = torch.cat(op_list,1) + op = torch.cat(op_list, 1) if self.prepared_bconds == None: return torch.sum(torch.mean((op) ** 2, 0)) - # we apply no boundary conditions operators if they are all None @@ -476,10 +597,10 @@ def loss_evaluation(self, lambda_bound=10): # l1_lambda = 0.001 # l1_norm =sum(p.abs().sum() for p in model.parameters()) # loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2)+ l1_lambda * l1_norm - if self.mode=='mat': + if self.mode == 'mat': loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2) else: - loss = torch.sum(torch.mean((op) ** 2, 0)) + lambda_bound * torch.sum(torch.mean((b_val - true_b_val) ** 2, 0)) + loss = torch.sum(torch.mean((op) ** 2, 0)) + lambda_bound * torch.sum( + torch.mean((b_val - true_b_val) ** 2, 0)) return loss - diff --git a/points_type.py b/points_type.py index 3ca9f2b0..a17b4e79 100644 --- a/points_type.py +++ b/points_type.py @@ -4,26 +4,51 @@ class Points_type(): - + """ + Discretizing the grid and allocating subsets for Finite Difference method. + """ @staticmethod - def shift_points(grid, axis, shift): - """ - Shifts all values of an array 'grid' on a value 'shift' in a direcion of + def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: + """Shifts all values of an array 'grid' on a value 'shift' in a direcion of axis 'axis', somewhat is equivalent to a np.roll + Parameters + ---------- + grid: torch.Tensor (torch.float64) + array of a n-D points + axis:int + axis to which the shift is applied + shift: float + shift value + + Returns + ------- + grid_shift: torch.Tensor (torch.float64) + shifted array of a n-D points + """ grid_shift = grid.clone() grid_shift[:, axis] = grid[:, axis] + shift return grid_shift @staticmethod - def in_hull(p, hull): - """ - Test if points in `p` are in `hull` + def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: + """Test if points in `p` are in `hull` `p` should be a `NxK` coordinates of `N` points in `K` dimensions `hull` is either a scipy.spatial.Delaunay object or the `MxK` array of the coordinates of `M` points in `K`dimensions for which Delaunay triangulation will be computed + + Parameters + ---------- + p: torch.Tensor (torch.float64) + shifted array of a n-D points + hull: + initial array of a n-D points + Returns + ------- + in_hull_array: + array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. """ if p.shape[1] > 1: if not isinstance(hull, Delaunay): @@ -40,9 +65,8 @@ def in_hull(p, hull): return np.array(((p <= upbound) & (p >= lowbound)).reshape(-1)) @staticmethod - def point_typization(grid): - """ - + def point_typization(grid:torch.Tensor) -> dict: + """Allocating subsets for FD (i.e., 'f', 'b', 'central'). Parameters ---------- @@ -91,27 +115,20 @@ def point_typization(grid): return point_type @staticmethod - def grid_sort(grid): + def grid_sort(grid: torch.Tensor) -> dict: """ - + Sorting grid points for each subset Parameters ---------- - point_type : dict - dictionary point:type with a points in a 'grid' above - type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string - is a dimension n - 'f' means that if we add small number to a position of corresponding - coordinate we stay in the 'hull' - 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull' + grid : torch.Tensor (torch.float64) + array of a n-D points + Returns ------- grid_dict : dict - dictionart type:points list - basically reversed dictionaty + sorted grid in each subset (see Points_type.point_typization) """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) From 9cf30a9dc6088e73e740fa4b2ef4447d220ba9d2 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 16 Oct 2022 21:41:08 +0300 Subject: [PATCH 002/225] Some stuff --- .readthedocs | 16 ++++++++++++++++ requirements.txt | 7 +++++++ 2 files changed, 23 insertions(+) create mode 100644 .readthedocs create mode 100644 requirements.txt diff --git a/.readthedocs b/.readthedocs new file mode 100644 index 00000000..9794ec9d --- /dev/null +++ b/.readthedocs @@ -0,0 +1,16 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/source/conf.py + + +python: + version: 3.9 + install: + - requirements: requirements.txt \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..8614a2ba --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +matplotlib==3.6.1 +numpy==1.23.4 +pandas==1.5.0 +scipy==1.9.2 +seaborn==0.12.0 +torch==1.12.1 +autodocsumm From 328f412f2d1b327f2355a7e47f6595f723e971b0 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 16 Oct 2022 21:43:16 +0300 Subject: [PATCH 003/225] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8614a2ba..9efc5f39 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -matplotlib==3.6.1 +matplotlib==3.6.0 numpy==1.23.4 pandas==1.5.0 scipy==1.9.2 From bab0291920ea3f4b064e257b68ef0bff9fe1e5fd Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 16 Oct 2022 21:49:08 +0300 Subject: [PATCH 004/225] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9efc5f39..6af3841d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -matplotlib==3.6.0 +matplotlib==3.6.0; python_version == '3.9' numpy==1.23.4 pandas==1.5.0 scipy==1.9.2 From 2c664557f3799ba4fb4921182f4c535fcff8881c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 19 Oct 2022 16:24:55 +0300 Subject: [PATCH 005/225] Upd Schrodinger. Added some stuff for paper. --- cache.py | 149 +++++++++++++++++++++++++++++--- config.py | 105 ++++++++++------------ examples/example_schrodinger.py | 34 +++++--- 3 files changed, 207 insertions(+), 81 deletions(-) diff --git a/cache.py b/cache.py index e3c9cd47..059827dd 100644 --- a/cache.py +++ b/cache.py @@ -10,17 +10,36 @@ import os import glob import numpy as np +from typing import Union from metrics import Solution from input_preprocessing import Equation, EquationMixin class Model_prepare(Solution): + """ + Prepares initial model. Serves for computing acceleration.\n + Saves the trained model to the cache, and subsequently it is possible to use pre-trained model (if \\\ + it saved and if the new model is structurally similar) to sped up computing.\n + If there isn't pre-trained model in cache, the training process will start from the beginning. + """ def __init__(self, grid, equal_cls, model, mode): super().__init__(grid, equal_cls, model, mode) self.equal_cls = equal_cls @staticmethod - def create_random_fn(eps): + def create_random_fn(eps: Union[int,float]): + """ + Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + + Parameters + ---------- + eps: + randomize parameter + + Returns + ------- + + """ def randomize_params(m): if type(m)==torch.nn.Linear or type(m)==torch.nn.Conv2d: m.weight.data=m.weight.data+(2*torch.randn(m.weight.size())-1)*eps#Random weight initialisation @@ -28,8 +47,30 @@ def randomize_params(m): return randomize_params - def cache_lookup(self, lambda_bound=0.001, cache_dir='../cache/', nmodels=None, cache_verbose=False): - + def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', + nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: + ''' + Looking for a saved cache. + + Parameters + ---------- + lambda_bound: float + an arbitrary chosen constant, influence only convergence speed. + cache_dir: str + directory where saved cache in. + nmodels: + ? + cache_verbose: bool + more detailed info about models in cache. + + Returns + ------- + best_checkpoint + + min_loss + minimum error in pre-trained error + + ''' files=glob.glob(cache_dir+'*.tar') # if files not found if len(files)==0: @@ -92,7 +133,24 @@ def cache_lookup(self, lambda_bound=0.001, cache_dir='../cache/', nmodels=None, return best_checkpoint,min_loss - def save_model(self, prep_model, state, optimizer_state, cache_dir='../cache/', name=None): + def save_model(self, prep_model: torch.nn.Sequential, state: dict, optimizer_state: dict, + cache_dir = '../cache/', name: Union[str,None] = None): + """ + Saved model in a cache (uses for 'NN' and 'autograd' methods). + + Parameters + ---------- + prep_model + model to save + state + a dict holding current model state (i.e., dictionary that maps each layer to its parameter tensor). + optimizer_state + a dict holding current optimization state (i.e., values, hyperparameters). + cache_dir + directory where saved cache in. + name + name for a model + """ if name==None: name=str(datetime.datetime.now().timestamp()) if os.path.isdir(cache_dir): @@ -103,7 +161,20 @@ def save_model(self, prep_model, state, optimizer_state, cache_dir='../cache/', torch.save({'model':prep_model, 'model_state_dict': state, 'optimizer_state_dict': optimizer_state}, cache_dir+name+'.tar') - def save_model_mat(self, cache_dir='../cache/', name=None, cache_model=None): + def save_model_mat(self, cache_dir: str = '../cache/', name: Union[str, None] = None, + cache_model: torch.nn.Sequential = None): + """ + Saved model in a cache (uses for 'mat' method). + + Parameters + ---------- + cache_dir + a directory where saved cache in. + name + name for a model + cache_model + model to save + """ NN_grid=torch.from_numpy(np.vstack([self.grid[i].reshape(-1) for i in range(self.grid.shape[0])]).T).float() if cache_model==None: cache_model = torch.nn.Sequential( @@ -132,7 +203,23 @@ def closure(): self.save_model(cache_model,cache_model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir, name=name) - def scheme_interp(self, trained_model, cache_verbose=False): + def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + """ + ??? + + Parameters + ---------- + trained_model + ??? + cache_verbose: + more detailed info about models in cache. + + Returns + ------- + model + optimizer.state_dict + + """ optimizer = torch.optim.Adam(self.model.parameters(), lr=0.001) loss = torch.mean(torch.square(trained_model(self.grid)-self.model(self.grid))) @@ -153,11 +240,27 @@ def closure(): return self.model, optimizer.state_dict() - def cache_retrain(self, cache_checkpoint, cache_verbose=False): + def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + """ + ??? + + Parameters + ---------- + cache_checkpoint + ??? + cache_verbose + more detailed info about models in cache. + + Returns + ------- + model + optimizer_state + """ # do nothing if cache is empty if cache_checkpoint==None: optimizer_state = None return self.model,optimizer_state + # if models have the same structure use the cache model state if str(cache_checkpoint['model']) == str(self.model): self.model = cache_checkpoint['model'] @@ -176,14 +279,38 @@ def cache_retrain(self, cache_checkpoint, cache_verbose=False): self.model, optimizer_state = self.scheme_interp(cache_model, cache_verbose=cache_verbose) return self.model, optimizer_state - def cache(self, cache_dir, nmodels, lambda_bound, cache_verbose, model_randomize_parameter, cache_model): - r =self.create_random_fn(model_randomize_parameter) + def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, + cache_verbose: bool,model_randomize_parameter: Union[float, None], + cache_model: torch.nn.Sequential) -> Union[torch.nn.Sequential, torch.Tensor]: + """ + Restores the model from the cache and uses it for retraining. + + Parameters + ---------- + cache_dir + a directory where saved cache in. + nmodels + ??? + lambda_bound + an arbitrary chosen constant, influence only convergence speed. + cache_verbose + more detailed info about models in cache. + model_randomize_parameter + Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + cache_model + cached model + + Returns + ------- + model + min_loss + + """ + r = self.create_random_fn(model_randomize_parameter) if self.mode == 'NN' or self.mode == 'autograd': cache_checkpoint, min_loss=self.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound) self.model, optimizer_state = self.cache_retrain(cache_checkpoint, cache_verbose=cache_verbose) - self.model.apply(r) - return self.model, min_loss elif self.mode == 'mat': diff --git a/config.py b/config.py index c66faf10..9c185cf8 100644 --- a/config.py +++ b/config.py @@ -6,15 +6,17 @@ """ from email.policy import default +from typing import Union import json + def read_config(name): with open(name, 'r') as config_file: config_data = json.load(config_file) return config_data -DEFAULT_CONFIG=""" +DEFAULT_CONFIG = """ { "Optimizer": { "learning_rate":1e-4, @@ -55,47 +57,43 @@ def read_config(name): default_config = json.loads(DEFAULT_CONFIG) -def check_module_name(module_name:str) -> bool: + +def check_module_name(module_name: str) -> bool: """ - check correctness of the 'first' level of config parameter name - we call it module + Check correctness of the 'first' level of config parameter name + we call it module. Parameters ---------- module_name: str - - first level of a parameter of a custom config + first level of a parameter of a custom config. Returns ------- module_correctness : bool - - true if module presents in 'default' config + true if module presents in 'default' config. """ if module_name in default_config.keys(): return True else: return False - -def check_param_name(module_name:str, param_name:str) -> bool: +def check_param_name(module_name: str, param_name: str) -> bool: """ - check correctness of the 'first' level of config parameter name - we call it module + Check correctness of the 'first' level of config parameter name + we call it module. Parameters ---------- module_name: str - - first level of a parameter of a custom config + first level of a parameter of a custom config. Returns ------- module_correctness : bool - - true if module presents in 'default' config + true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): @@ -103,84 +101,77 @@ def check_param_name(module_name:str, param_name:str) -> bool: else: return False + ''' We can use old json load. However, it is good to check if the parameters named correctly So, we make the full 'default' version of the config and load 'non-default' parameters either from file or using method 'change_parameter' ''' + + class Config: def __init__(self, *args): - ''' + """ We init config with default one - If there is passed path to a custon config, we try to load it and change + If there is passed path to a custom config, we try to load it and change default parameters - Parameters ---------- config_path: str, optional - path to a custom config Returns ------- - self: Config - + self: Config config used in solver.optimization_solver function - ''' - + """ - - self.params=default_config - if len(args)==1: + self.params = default_config + if len(args) == 1: try: - custom_config=read_config(args[0]) + custom_config = read_config(args[0]) except Exception: print('Error reading config. Default config assumed.') - custom_config=default_config + custom_config = default_config for module_name in custom_config.keys(): if check_module_name(module_name): for param in custom_config[module_name].keys(): - if check_param_name(module_name,param): - self.params[module_name][param]=custom_config[module_name][param] + if check_param_name(module_name, param): + self.params[module_name][param] = custom_config[module_name][param] else: - print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name,param)) - else: - print('Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) + print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format( + module_name, param)) + else: + print( + 'Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) - elif len(args)>1: + elif len(args) > 1: print('Too much initialization args, using default config') - - - - def set_parameter(self,parameter_string:str,value): - ''' - We may want to just change defalut condfig parameters manually, without loading + + def set_parameter(self, parameter_string: str, value: Union[bool,float, int, None]): + """ + We may want to just change default config parameters manually, without loading the .json We run checks to see we set them corretly - Parameters ---------- - parameter_string: str - - string in format 'module.parameter' + parameter_string: + string in format 'module.parameter' - value: bool,float, int, None + value + value for the parameter + """ - value for the parameter - ''' - - module_name,param=parameter_string.split('.') + module_name, param = parameter_string.split('.') if check_module_name(module_name): - if check_param_name(module_name,param): - self.params[module_name][param]=value + if check_param_name(module_name, param): + self.params[module_name][param] = value else: - print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name,param)) - else: + print( + 'Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name, param)) + else: print('Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) - - - diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index b4459f92..89ed3c8a 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -18,11 +18,10 @@ from input_preprocessing import Equation result = [] -# for n in range(10,60,10): -for n in range(10,11): - res_i = [] # model(grid)[i] +device = torch.device('cpu') +res_i = {"n_iter": [], "grid": [], "u": [], "v": []} +for n in range(10,60,10): for i in range(10): - device = torch.device('mps') x_grid = np.linspace(-5,5,n+1) t_grid = np.linspace(0,np.pi/2,n+1) @@ -211,13 +210,22 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = 500,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=True, learning_rate=1e-3, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, + save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() - print('Time taken {} = {}'.format(n, end - start)) - res_i.append(model(grid)) - result.append({'n': n, 'values': res_i, 'time': start - end}) -df = pd.DataFrame(result) -df.to_csv('benchmarking_data/example_schrodinger.csv') -# error_rmse = torch.sqrt(torch.mean(((grid)-model(grid))**2)) \ No newline at end of file + print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) + + val = model(grid).detach().numpy() + u = val[0:,0] + v = val[0:,1] + n_iter = [i for j in range(len(u))] + N = [n for j in range(len(u))] + res_i['n_iter'].extend(n_iter) + res_i['grid'].extend(N) + res_i['v'].extend(v) + res_i['u'].extend(u) + result.extend(res_i) + +df = pd.DataFrame(res_i) +df.to_csv('benchmarking_data/schrodinger_experiment_10_50_cache=False.csv',index=False) \ No newline at end of file From 0564ad1b7bab448f8f1605100964f46ad21e063d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 31 Oct 2022 15:26:41 +0300 Subject: [PATCH 006/225] Some docstrings. Added docstrings and schrodinger example fixed for paper. --- .../benchmarking_data/schrodinger_test.mat | Bin 0 -> 559592 bytes examples/example_schrodinger.py | 9 +- finite_diffs.py | 131 +++--- input_preprocessing.py | 370 ++++++++-------- metrics.py | 178 +++++--- points_type.py | 39 +- solver.py | 340 ++++++++++----- test.ipynb | 401 ++++++++++++++++++ 8 files changed, 1051 insertions(+), 417 deletions(-) create mode 100644 examples/benchmarking_data/schrodinger_test.mat create mode 100644 test.ipynb diff --git a/examples/benchmarking_data/schrodinger_test.mat b/examples/benchmarking_data/schrodinger_test.mat new file mode 100644 index 0000000000000000000000000000000000000000..3767e62244fa80b74f1c415bd671d93296ca6d5e GIT binary patch literal 559592 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%0AGl3zfWp#a*DXJc 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

P+CZ=JK0t{H&z1dW)-5raTI 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 Sqrq`zoMW9^qv?N9{7^cnbA1p1 literal 0 HcmV?d00001 diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 89ed3c8a..3cd3e65e 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -19,8 +19,9 @@ result = [] device = torch.device('cpu') -res_i = {"n_iter": [], "grid": [], "u": [], "v": []} -for n in range(10,60,10): +res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} +grd = [10, 20, 30, 40] +for n in grd: for i in range(10): x_grid = np.linspace(-5,5,n+1) @@ -221,11 +222,13 @@ v = val[0:,1] n_iter = [i for j in range(len(u))] N = [n for j in range(len(u))] + time_iter = [end - start for i in range(len(u))] res_i['n_iter'].extend(n_iter) res_i['grid'].extend(N) res_i['v'].extend(v) res_i['u'].extend(u) + res_i['time'].extend(time_iter) result.extend(res_i) df = pd.DataFrame(res_i) -df.to_csv('benchmarking_data/schrodinger_experiment_10_50_cache=False.csv',index=False) \ No newline at end of file +df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file diff --git a/finite_diffs.py b/finite_diffs.py index 8dc5150d..682b6460 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -1,31 +1,28 @@ from copy import copy -from typing import Union +from typing import Union, List, Tuple flatten_list = lambda t: [item for sublist in t for item in sublist] class Finite_diffs(): """ - Implements the Finite Difference method + Implements the Finite Difference method for a given operator. \n + `finite_diff_shift`, `scheme_build`, `sign_order` implement 1st order (in terms of accuracy) finite difference. \n + `second_order_shift`, `second_order_scheme_build`, `second_order_sign_order` implement respectively 2nd order (in terms of accuracy) finite difference. """ # the idea is simple - central difference changes [0]->([1]-[-1])/(2h) (in terms of grid nodes position) @staticmethod - def finite_diff_shift(diff, axis: int, mode: str) -> list: - """ 1st order shift - - Parameters - ---------- - diff - values of finite differences - axis - axis - mode - the finite difference type (i.e., forward, backward, central) - - Returns - ------- - diff_list - list with differences + def finite_diff_shift(diff: list, axis: int, mode: str) -> list: + """ + 1st order points shift for the corresponding finite difference mode. + + Args: + diff: values of finite differences. + axis: axis. + mode: the finite difference mode (i.e., forward, backward, central). + + Returns: + diff_list: list with shifted points """ @@ -69,25 +66,20 @@ def finite_diff_shift(diff, axis: int, mode: str) -> list: return [diff_p, diff_m] @staticmethod - def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : + def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: """ - Building first order finite-difference stencil. - - Parameters - ---------- - axes - axes that transforms using FDM. (operator in conventional form) - varn - Dimensionality of the problem. - axes_mode - 'central' or combination of 'f' and 'b'. - - Returns - ------- - finite_diff - transformed axes due to finite difference method. - direction_list - list, which contains directions (i.e, 'central', 'f', 'b'). + Building first order (in terms of accuracy) finite-difference stencil. + + Args: + axes: axes that transforms using FDM. (operator in conventional form) + varn: Dimensionality of the problem. + axes_mode: 'central' or combination of 'f' and 'b'. + + + Returns: + - finite_diff: transformed axes due to finite difference mode. + - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + """ order = len(axes) @@ -120,21 +112,17 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : return finite_diff, direction_list @staticmethod - def sign_order(order, mode: str, h = 1 / 2) -> list: + def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: """ Determines the sign of the derivative for the corresponding transformation from Finite_diffs.scheme_build() - Parameters - ---------- - order: - order of differentiation. - mode: - calculation type of finite difference. - h: + Args: + order: order of differentiation. + mode: calculation type of finite difference. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). - - Returns - ------- + Returns: + sign_list: list, with signs for corresponding points. """ """ @@ -159,12 +147,25 @@ def sign_order(order, mode: str, h = 1 / 2) -> list: start_list.append([sign / h, -sign / h]) sign_list = flatten_list(start_list) return sign_list + """ The following functions are forward and backward schemes combined """ @staticmethod - def second_order_shift(diff, axis, mode): + def second_order_shift(diff: list, axis: int, mode: str) -> list: + """ + 2nd order points shift for the corresponding finite difference mode. + + Args: + diff: values of finite differences. + axis: axis. + mode: the finite difference mode (i.e., forward, backward, central). + + Returns: + diff_list: list with shifted points. + + """ diff_1 = copy(diff) diff_2 = copy(diff) diff_3 = copy(diff) @@ -179,7 +180,22 @@ def second_order_shift(diff, axis, mode): return [diff_3, diff_2, diff_1] @staticmethod - def second_order_scheme_build(axes, varn, axes_mode): + def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list]: + """ + Building second order (in terms of accuracy) finite-difference stencil. + + Args: + axes: axes that transforms using FDM. (operator in conventional form) + varn: dimensionality of the problem. + axes_mode: 'central' or combination of 'f' and 'b'. + + + Returns: + - finite_diff: transformed axes due to finite difference mode. + - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + + + """ order = len(axes) finite_diff = [] direction_list = [] @@ -210,7 +226,21 @@ def second_order_scheme_build(axes, varn, axes_mode): return finite_diff, direction_list @staticmethod - def second_order_sign_order(order, mode, h=1/2): + def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: + """ + Determines the sign of the derivative for the corresponding point transformation from `Finite_diffs.scheme_build`.\n + Same as `sign_order`, but more precise due to second order of accuracy. + + Args: + order: order of differentiation. + mode: calculation type of finite difference. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + + Returns: + sign_list: list, with signs for corresponding points. + + + """ sign_list = [1] for i in range(order): start_list = [] @@ -221,4 +251,3 @@ def second_order_sign_order(order, mode, h=1/2): start_list.append([-3 * (1 / (2 * h)) * sign, 4 * (1 / (2 * h)) * sign, -(1 / (2 * h)) * sign]) sign_list = flatten_list(start_list) return sign_list - diff --git a/input_preprocessing.py b/input_preprocessing.py index 5969e79a..e74b1dda 100644 --- a/input_preprocessing.py +++ b/input_preprocessing.py @@ -10,79 +10,82 @@ class EquationMixin(): """ - Auxiliary class. This one contains some functions that uses in other classes + Auxiliary class. This one contains some functions that uses in other classes. """ @staticmethod def operator_unify(operator: list) -> list: - """ - This one allows to make operator form simpler. - - Parameters - ---------- - operator : list - operator in input form - - Returns - ------- - unified_operator : list - operator in unified form for preprocessing - - """ - unified_operator = [] - for term in operator: - const = term[0] - vars_set = term[1] - power = term[2] - variables=[] - if len(term)==4: - variables = term[3] - elif isinstance(power,(int,float)): - variables=0 - elif type(power)==list: - for _ in range(len(power)): - variables.append(0) - if variables is None: - if type(power) is list: - unified_operator.append([const, vars_set, power,0]) - else: - unified_operator.append([const, [vars_set], [power],[0]]) + """ + This one allows to make operator form simpler. + + Parameters + ---------- + operator + operator in input form. + + Returns + ------- + unified_operator + operator in unified form for preprocessing. + + """ + unified_operator = [] + for term in operator: + const = term[0] + vars_set = term[1] + power = term[2] + variables=[] + if len(term)==4: + variables = term[3] + elif isinstance(power,(int,float)): + variables=0 + elif type(power)==list: + for _ in range(len(power)): + variables.append(0) + if variables is None: + if type(power) is list: + unified_operator.append([const, vars_set, power,0]) else: - if type(power) is list: - unified_operator.append([const, vars_set, power,variables]) - else: - unified_operator.append([const, [vars_set], [power],[variables]]) - return unified_operator + unified_operator.append([const, [vars_set], [power],[0]]) + else: + if type(power) is list: + unified_operator.append([const, vars_set, power,variables]) + else: + unified_operator.append([const, [vars_set], [power],[variables]]) + return unified_operator @staticmethod def op_dict_to_list(opdict: dict) -> list: - """Transform operator in dict form to list + """ + Transform operator in dict form to list. Parameters ---------- - opdict: dict - operator in dict form + opdict + operator in dict form. Returns ------- - oplist: list - operator in list (input) form + oplist + operator in list (input) form. """ return list([list(term.values()) for term in opdict.values()]) @staticmethod def closest_point(grid: torch.Tensor, target_point: float) -> int: - """Defines the closest boundary point to the grid. Auxiliary function. + """ + Defines the closest boundary point to the grid. Auxiliary function. + Parameters ---------- grid - array of a n-D points + array of a n-D points. target_point - boundary point + boundary point. Returns ------- min_pos - position of the boundary point on the grid + position of the boundary point on the grid. """ min_dist = np.inf pos = 0 @@ -98,18 +101,18 @@ def closest_point(grid: torch.Tensor, target_point: float) -> int: @staticmethod def bndpos(grid: torch.Tensor, bnd: torch.Tensor) -> Union[list, int]: """ - Returns the position of the boundary points on the grid + Returns the position of the boundary points on the grid. Parameters ---------- - grid : torch.Tensor - grid for coefficient in form of torch.Tensor mapping - bnd : torch.Tensor - boundary + grid + grid for coefficient in form of torch.Tensor mapping. + bnd + boundary conditions. Returns ------- bndposlist - list of positions of the boundary points on the grid + list of positions of the boundary points on the grid. """ if grid.shape[0] == 1: grid = grid.reshape(-1,1) @@ -145,21 +148,19 @@ def search_pos(bnd): return bndposlist @staticmethod - def bnd_unify(bconds): + def bnd_unify(bconds: list) -> list: """ - Serves to add None instead of empty operator + Serves to add None instead of empty operator. Parameters ---------- - bconds : list - - boundary in conventional form (see examples) + bconds + boundary in conventional form (see examples). Returns ------- - unified_bconds : list - - boundary in input-friendly form + unified_bconds + boundary in input-friendly form. """ if bconds==None: @@ -205,9 +206,30 @@ def bnd_prepare(self, value): class Equation_NN(EquationMixin, Points_type, Finite_diffs): - """Prepares equation, boundary conditions for NN method. """ - def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_order=2): + Prepares equation, boundary conditions for NN method. + """ + def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, + h: float = 0.001, inner_order: int = 1, boundary_order: int = 2): + """ + Prepares equation, boundary conditions for NN method. + + Parameters + ---------- + grid: + array of a n-D points. + operator: + equation. + bconds: + boundary conditions. + h + discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: + accuracy inner order for finite difference. Default = 1 + boundary_order: + accuracy boundary order for finite difference. Default = 2 + + """ self.grid = grid self.operator = operator self.bconds = bconds @@ -215,31 +237,20 @@ def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_orde self.inner_order = inner_order self.boundary_order = boundary_order - def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type) -> list: + def operator_to_type_op(self, unified_operator: list, nvars: int, axes_scheme_type: str) -> list: """ Function serves applying different schemes to a different point types for entire operator - Parameters - ---------- - unified_operator : list - operator in a proper form - nvars : int - Dimensionality of the problem. - axes_scheme_type : string - 'central' or combination of 'f' and 'b'. - h : float, optional - Derivative precision parameter (to simplify h in the expression - (f(x+h)-f(x))/h). The default is 1/2. - boundary_order : int, optional - Order of finite difference scheme taken at the domain boundary points. - The default is 1. + Args: + unified_operator: operator in a proper form. + nvars: dimensionality of the problem. + axes_scheme_type: 'central' or combination of 'f' and 'b'. + + Returns: + fin_diff_op: list, where the conventional operator changed to steps and signs (see scheme_build function description). + - Returns - ------- - fin_diff_op : list - list, where the conventional operator changed to steps and signs - (see scheme_build function description). """ fin_diff_op = [] @@ -251,7 +262,7 @@ def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type) -> list power = term[2] variables = term[3] for k, term in enumerate(vars_set): - # None is for case where we need the fuction without derivatives + # None is for case where we need the function without derivatives if term != [None]: if axes_scheme_type == 'central': if self.inner_order==1: @@ -275,24 +286,18 @@ def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type) -> list fin_diff_op.append([const, fin_diff_list, s_order_list, power,variables]) return fin_diff_op - def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): + def finite_diff_scheme_to_grid_list(self, finite_diff_scheme: list, grid_points: torch.Tensor) -> list: """ Auxiliary function that converts integer grid steps in term described in finite-difference scheme to a grids with shifted points, i.e. from field (x,y) -> (x,y+h). - Parameters - ---------- - finite_diff_scheme : list - operator_to_type_op one term - grid : torch.Tensor - h : float - derivative precision parameter. The default is 0.001. + Args: + finite_diff_scheme: operator_to_type_op one term. + grid: array of a n-D points. - Returns - ------- - s_grid_list : list - list, where the steps and signs changed to grid and signs + Returns: + s_grid_list: list, where the steps and signs changed to grid and signs. """ s_grid_list = [] for i, shifts in enumerate(finite_diff_scheme): @@ -303,25 +308,22 @@ def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): s_grid_list.append(s_grid) return s_grid_list - def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): + def type_op_to_grid_shift_op(self, fin_diff_op: list, grid_points: torch.Tensor) -> list: """ Converts operator to a grid_shift form. Includes term coefficient conversion. Coeff may be integer, function or array, last two are mapped to a - subgrid that corresponds point type + subgrid that corresponds point type. + + Args: + fin_diff_op: operator_to_type_op result. + grid_points: grid with sorted nodes. + + + Returns: + shift_grid_op: final form of differential operator used in the algorithm for single grid type. - Parameters - ---------- - fin_diff_op : list - operator_to_type_op result. - grid_points : torch.Tensor - grid with sorted nodes. - Returns - ------- - shift_grid_op : list - final form of differential operator used in the algorithm for single - grid type """ shift_grid_op = [] for term1 in fin_diff_op: @@ -355,18 +357,15 @@ def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: """ Applies all transformations to operator. - Parameters - ---------- - unified_operator : list - operator_unify result. - grid_dict : dict - result Points_type.grid_sort + Args: + unified_operator: operator_unify result. + grid_dict: result Points_type.grid_sort + + + Returns: + operator_list: final form of differential operator used in the algorithm for subset grid types. + - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm for subset - grid types. """ operator_list = [] @@ -380,25 +379,12 @@ def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: def operator_prepare(self) -> list: """ - Changes the operator in conventional form to the input one - - Parameters - ---------- - op : list - operator in conventional form. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - subset : list, optional - grid subsets used for the operator ,e.g. ['central','fb','ff'] - true_grid : torch.Tensor, optional - initial grid for coefficient in form of torch.Tensor mapping - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm for subset - grid types + Changes the operator in conventional form to the input one. + + Returns: + operator_list: final form of differential operator used in the algorithm for subset grid types. + + """ grid_dict = self.grid_sort(self.grid) @@ -424,19 +410,12 @@ def operator_prepare(self) -> list: def bnd_prepare(self): """ - Parameters - ---------- - bconds : list - boundary in conventional form (see examples) - grid : torch.Tensor - grid with sorted nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. + Prepares boundary conditions from conventional form to input form. Returns ------- prepared_bcond : list - boundary in input form + boundary in input form. """ grid_dict = self.grid_sort(self.grid) @@ -467,30 +446,42 @@ def bnd_prepare(self): class Equation_autograd(EquationMixin): - """ Prepares equation for autograd method (i.e., from conventional form to input form). """ - def __init__(self, grid, operator, bconds): + Prepares equation for autograd method (i.e., from conventional form to input form). + """ + def __init__(self, grid: torch.Tensor, operator: Union[list, dict], bconds: list): + """ + Prepares equation for autograd method (i.e., from conventional form to input form). + + Parameters + ---------- + grid + array of a n-D points. + operator: + equation. + bconds: + boundary conditions. + """ self.grid = grid self.operator = operator self.bconds = bconds @staticmethod def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: - """Prepares equation's coefficients for autograd method. + """ + Prepares equation's coefficients for autograd method. Parameters ---------- unified_operator - result input_preprocessing.EquationMixin.operator_unify + result input_preprocessing.EquationMixin.operator_unify. grid - array of a n-D points + array of a n-D points. Returns ------- autograd_op - prepared autograd operator - - + prepared autograd operator. """ autograd_op=[] for term in unified_operator: @@ -510,16 +501,12 @@ def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: def operator_prepare(self): """ - Changes the operator in conventional form to the input one - - Parameters - ---------- - op : list - operator in conventional form. + Changes the operator in conventional form to the input one. + Returns ------- operator_list : list - final form of differential operator used in the algorithm + final form of differential operator used in the algorithm. """ if type(self.operator) is list and type(self.operator[0]) is dict: @@ -538,13 +525,12 @@ def operator_prepare(self): def bnd_prepare(self): """ - Prepares boundary conditions from conventional form to input form + Prepares boundary conditions from conventional form to input form. Returns ------- prepared_bconds : list - boundary in input form - + boundary in input form. """ bconds = self.bnd_unify(self.bconds) if bconds==None: @@ -574,6 +560,18 @@ class Equation_mat(EquationMixin): Prepares equation for matrix optimization method (i.e., from conventional form to input form). """ def __init__(self, grid, operator, bconds): + """ + Prepares equation for matrix optimization method (i.e., from conventional form to input form). + + Parameters + ---------- + grid: + array of a n-D points. + operator: + equation. + bconds: + boundary conditions. + """ self.grid = grid self.operator = operator self.bconds = bconds @@ -587,7 +585,6 @@ def operator_prepare(self) -> list: prepared_operator final form of differential operator used in the algorithm - """ if type(self.operator) == dict: operator_list = self.op_dict_to_list(self.operator) @@ -596,12 +593,12 @@ def operator_prepare(self) -> list: def bnd_prepare(self) -> list: """ - Prepares boundary conditions from conventional form to input form + Prepares boundary conditions from conventional form to input form. Returns ------- prepared_bconds - final form of boundary conditions used in the algorithm + final form of boundary conditions used in the algorithm. """ prepared_bconds=[] @@ -632,19 +629,29 @@ def bnd_prepare(self) -> list: class Equation(): - def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, h = 0.001, inner_order = 1, boundary_order = 2): + """ + Interface for preparing equations due to chosen calculation method. + """ + def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, + h: float = 0.001, inner_order: int = 1, boundary_order: int = 2): """ + Interface for preparing equations due to chosen calculation method. Parameters ---------- - grid - - operator - - bconds + grid: + array of a n-D points. + operator: + equation. + bconds: + boundary conditions. h - inner_order - boundary_order + discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: + accuracy inner order for finite difference. Default = 1 + boundary_order: + accuracy boundary order for finite difference. Default = 2 + """ self.grid = grid self.operator = operator @@ -653,19 +660,18 @@ def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list self.inner_order = inner_order self.boundary_order = boundary_order def set_strategy(self, strategy: str) -> Union[Equation_NN, Equation_mat, Equation_autograd]: - """Setting the calculation method. + """ + Setting the calculation method. Parameters ---------- strategy: str - Calculation method. (i.e., "NN", "autograd", "mat") + Calculation method. (i.e., "NN", "autograd", "mat"). Returns ------- chosen_method : - A given calculation method - - + A given calculation method. """ if strategy == 'NN': return Equation_NN(self.grid, self.operator, self.bconds, h=self.h, inner_order=self.inner_order, boundary_order=self.boundary_order) diff --git a/metrics.py b/metrics.py index d189688c..7509677e 100644 --- a/metrics.py +++ b/metrics.py @@ -4,6 +4,7 @@ from torch import Tensor +import input_preprocessing from points_type import Points_type flatten_list = lambda t: [item for sublist in t for item in sublist] @@ -15,25 +16,33 @@ def take_derivative(self, value): class Derivative_NN(DerivativeInt): - def __init__(self, grid, model): + def __init__(self, grid: torch.Tensor, model: torch.nn.Sequential): + """ + Taking numerical derivative for 'NN' method. + + Parameters + ---------- + grid: + array of a n-D points. + model: + neural network. + """ self.grid = grid self.model = model def take_derivative(self, term: Union[list, int, torch.Tensor]) -> torch.Tensor: """ Auxiliary function serves for single differential operator resulting field - derivation + derivation. Parameters ---------- - model: torch.Sequential - Neural network. - term: + term differential operator in conventional form. Returns ------- - der_term : torch.Tensor + der_term resulting field, computed on a grid. """ @@ -66,10 +75,20 @@ def take_derivative(self, term: Union[list, int, torch.Tensor]) -> torch.Tensor: class Derivative_autograd(DerivativeInt): """ - Applies derivative for autograd method. + Taking numerical derivative for 'autograd' method. """ def __init__(self, grid, model): + """ + Taking numerical derivative for 'autograd' method. + + Parameters + ---------- + grid: + array of a n-D points. + model: + neural network. + """ self.grid = grid self.model = model @@ -137,7 +156,7 @@ def nn_autograd_mixed(model: torch.nn.Sequential, points, axis=[0]): gradient_full = torch.hstack(gradient_full) return gradient_full - def nn_autograd(self, *args, axis=0): + def nn_autograd(self, *args, axis=0) -> torch.Tensor: """ Wrap just for convenience metrics.Derivative_autograd.nn_autograd_simple and metrics.Derivative_autograd.nn_autograd_mixed in one function. @@ -151,6 +170,8 @@ def nn_autograd(self, *args, axis=0): Returns ------- + grads + """ model = args[0] @@ -162,20 +183,18 @@ def nn_autograd(self, *args, axis=0): grads = self.nn_autograd_mixed(model, points, axis=axis) return grads - def take_derivative(self, term): + def take_derivative(self, term) -> torch.Tensor: """ Auxiliary function serves for single differential operator resulting field derivation - Parameters - ---------- - term : TYPE - differential operator in conventional form. + Args: + term: differential operator in conventional form. + + + Returns: + der_term: resulting field, computed on a grid. - Returns - ------- - der_term : torch.Tensor - resulting field, computed on a grid. """ # it is may be int, function of grid or torch.Tensor @@ -203,22 +222,28 @@ def take_derivative(self, term): class Derivative_mat(DerivativeInt): def __init__(self, grid, model): + """ + Taking numerical derivative for 'mat' method. + + Args: + grid: array of a n-D points. + model: random matrix. + + """ self.grid = grid self.model = model @staticmethod - def derivative_1d(model: torch.Tensor, grid: torch.Tensor): + def derivative_1d(model: torch.Tensor, grid: torch.Tensor) -> torch.Tensor: """ Computes derivative in one dimension for matrix method. - Parameters - ---------- - model + Args: + model: random matrix. + grid: array of a n-D points. - grid - - Returns - ------- + Returns: + du: computed derivative along one dimension. """ # print('1d>2d') @@ -237,7 +262,30 @@ def derivative_1d(model: torch.Tensor, grid: torch.Tensor): return du @staticmethod - def derivative(u_tensor, h_tensor, axis, scheme_order=1, boundary_order=1): + def derivative(u_tensor: torch.Tensor, h_tensor: torch.Tensor, axis: int, + scheme_order: int = 1, boundary_order: int = 1) -> torch.Tensor: + """ + + Parameters + ---------- + u_tensor + + h_tensor + + axis + axis along which the derivative is calculated. + scheme_order + accuracy inner order for finite difference. Default = 1 + boundary_order + accuracy boundary order for finite difference. Default = 2 + + Returns + ------- + du + computed derivative. + + + """ # print('shape=',u_tensor.shape) if (u_tensor.shape[0] == 1): du = Derivative_mat.derivative_1d(u_tensor, h_tensor) @@ -339,21 +387,19 @@ def derivative(u_tensor, h_tensor, axis, scheme_order=1, boundary_order=1): return du - def take_derivative(self, term): + def take_derivative(self, term) -> torch.Tensor: """ Auxiliary function serves for single differential operator resulting field derivation Parameters ---------- - model : torch.Sequential - Neural network. term : TYPE differential operator in conventional form. Returns ------- - der_term : torch.Tensor + der_term resulting field, computed on a grid. """ @@ -383,24 +429,32 @@ def take_derivative(self, term): class Derivative(): def __init__(self, grid, model): + """ + Interface for taking numerical derivative due to chosen calculation method. + + Parameters + ---------- + grid + array of a n-D points. + model + neural network or matrix depending on the selected mode. + """ self.grid = grid self.model = model - def set_strategy(self, strategy): + def set_strategy(self, strategy: str) -> Union[Derivative_NN, Derivative_autograd, Derivative_mat]: """ Setting the calculation method. Parameters ---------- - strategy: str + strategy Calculation method. (i.e., "NN", "autograd", "mat") Returns ------- - prepared_equation : + prepared_equation equation in input form for a given calculation method - - """ if strategy == 'NN': return Derivative_NN(self.grid, self.model) @@ -413,28 +467,42 @@ def set_strategy(self, strategy): class Solution(): - def __init__(self, grid, equal_cls, model, mode): + def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + model: Union[torch.nn.Sequential, torch.Tensor], mode: str): + """ + Interface for computing loss due to chosen calculation method. + + Parameters + ---------- + grid + array of a n-D points. + equal_cls + object from input_preprocessing (see input_preprocessing.Equation). + model + neural network or matrix depending on the selected mode. + mode + a given calculation method. + """ self.grid = grid self.prepared_operator = equal_cls.operator_prepare() self.prepared_bconds = equal_cls.bnd_prepare() self.model = model self.mode = mode - def apply_operator(self, operator): + def apply_operator(self, operator: list) -> torch.Tensor: """ Deciphers equation in a single grid subset to a field. Parameters ---------- - model : torch.Sequential - Neural network. - operator : list + operator Single (len(subset)==1) operator in input form. See input_preprocessing.operator_prepare() Returns ------- - total : torch.Tensor + total """ derivative = Derivative(self.grid, self.model).set_strategy(self.mode).take_derivative @@ -447,17 +515,15 @@ def apply_operator(self, operator): total = dif return total - def apply_bconds_set(self, operator_set) -> torch.Tensor: + def apply_bconds_set(self, operator_set: list) -> torch.Tensor: """ Deciphers equation in a whole grid to a field. Parameters ---------- - model : torch.Sequential - Neural network. - operator_set : list + operator_set Multiple (len(subset)>=1) operators in input form. See - input_preprocessing.operator_prepare() + input_preprocessing.operator_prepare(). Returns ------- field_part: @@ -476,7 +542,7 @@ def b_op_val_calc(self, bcond: list) -> torch.Tensor: Parameters ---------- - bcond: + bcond terms of prepared boundary conditions (see input_preprocessing.bnd_prepare) in input form. Returns ------- @@ -511,10 +577,10 @@ def apply_bconds_operator(self) -> tuple[torch.Tensor, torch.Tensor]: Returns ------- - b_val: - calculated model boundary values - true_b_val: - true grid boundary values + b_val + calculated model boundary values. + true_b_val + true grid boundary values. """ true_b_val_list = [] b_val_list = [] @@ -550,19 +616,19 @@ def apply_bconds_operator(self) -> tuple[torch.Tensor, torch.Tensor]: return b_val, true_b_val - def loss_evaluation(self, lambda_bound=10) -> Tensor: + def loss_evaluation(self, lambda_bound: int = 10) -> torch.Tensor: """ - Computes loss + Computes loss. Parameters ---------- - lambda_bound: int - an arbitrary chosen constant, influence only convergence speed + lambda_bound + an arbitrary chosen constant, influence only convergence speed. Returns ------- loss - loss + loss. """ if self.mode == 'mat' or self.mode == 'autograd': diff --git a/points_type.py b/points_type.py index a17b4e79..493eec85 100644 --- a/points_type.py +++ b/points_type.py @@ -9,21 +9,23 @@ class Points_type(): """ @staticmethod def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: - """Shifts all values of an array 'grid' on a value 'shift' in a direcion of - axis 'axis', somewhat is equivalent to a np.roll + """ + Shifts all values of an array 'grid' on a value 'shift' in a direction of + axis 'axis', somewhat is equivalent to a np.roll. + Parameters ---------- grid: torch.Tensor (torch.float64) - array of a n-D points + array of a n-D points. axis:int - axis to which the shift is applied + axis to which the shift is applied. shift: float - shift value + shift value. Returns ------- grid_shift: torch.Tensor (torch.float64) - shifted array of a n-D points + shifted array of a n-D points. """ grid_shift = grid.clone() @@ -32,19 +34,20 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: @staticmethod def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: - """Test if points in `p` are in `hull` + """ + Test if points in `p` are in `hull` `p` should be a `NxK` coordinates of `N` points in `K` dimensions `hull` is either a scipy.spatial.Delaunay object or the `MxK` array of the coordinates of `M` points in `K`dimensions for which Delaunay triangulation - will be computed + will be computed. Parameters ---------- p: torch.Tensor (torch.float64) - shifted array of a n-D points + shifted array of a n-D points. hull: - initial array of a n-D points + initial array of a n-D points. Returns ------- in_hull_array: @@ -65,13 +68,14 @@ def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: return np.array(((p <= upbound) & (p >= lowbound)).reshape(-1)) @staticmethod - def point_typization(grid:torch.Tensor) -> dict: - """Allocating subsets for FD (i.e., 'f', 'b', 'central'). + def point_typization(grid: torch.Tensor) -> dict: + """ + Allocating subsets for FD (i.e., 'f', 'b', 'central'). Parameters ---------- grid : torch.Tensor (torch.float64) - array of a n-D points + array of a n-D points. Returns ------- @@ -83,7 +87,7 @@ def point_typization(grid:torch.Tensor) -> dict: 'f' means that if we add small number to a position of corresponding coordinate we stay in the 'hull' 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull' + of corresponding coordinate we stay in the 'hull'. """ direction_list = [] for axis in range(grid.shape[1]): @@ -117,18 +121,17 @@ def point_typization(grid:torch.Tensor) -> dict: @staticmethod def grid_sort(grid: torch.Tensor) -> dict: """ - Sorting grid points for each subset + Sorting grid points for each subset from result Points_type.point_typization. Parameters ---------- grid : torch.Tensor (torch.float64) - array of a n-D points - + array of a n-D points. Returns ------- grid_dict : dict - sorted grid in each subset (see Points_type.point_typization) + sorted grid in each subset (see Points_type.point_typization). """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) diff --git a/solver.py b/solver.py index acad1b2d..c306873f 100644 --- a/solver.py +++ b/solver.py @@ -1,91 +1,161 @@ - import torch import numpy as np import matplotlib.pyplot as plt from matplotlib import cm + +import input_preprocessing from cache import Model_prepare +from typing import Union import os import sys import datetime -def grid_format_prepare(coord_list, mode='NN'): - if type(coord_list)==torch.Tensor: + +def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: str = 'NN') -> torch.Tensor: + """ + Prepares grid to a general form. Further, formatted grid can be processed + by Points_type.point_typization for 'NN' and 'autograd' methods. + + Parameters + ---------- + coord_list + list with coordinates. + mode + Calculation method. (i.e., "NN", "autograd", "mat") + + Returns + ------- + grid + grid in a general form + """ + if type(coord_list) == torch.Tensor: print('Grid is a tensor, assuming old format, no action performed') return coord_list - if mode=='NN' or mode =='autograd': - if len(coord_list)==1: - coord_list=torch.tensor(coord_list) - grid=coord_list.reshape(-1,1).float() + if mode == 'NN' or mode == 'autograd': + if len(coord_list) == 1: + coord_list = torch.tensor(coord_list) + grid = coord_list.reshape(-1, 1).float() else: - coord_list_tensor=[] + coord_list_tensor = [] for item in coord_list: - if isinstance(item,(np.ndarray)): + if isinstance(item, (np.ndarray)): coord_list_tensor.append(torch.from_numpy(item)) else: coord_list_tensor.append(item) - grid=torch.cartesian_prod(*coord_list_tensor).float() - elif mode=='mat': + grid = torch.cartesian_prod(*coord_list_tensor).float() + elif mode == 'mat': grid = np.meshgrid(*coord_list) grid = torch.tensor(np.array(grid)) return grid + class Solver(Model_prepare): - def __init__(self, grid, equal_cls, model, mode): + """ + High-level interface for solving equations. + """ + def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + model: torch.nn.Sequential, mode: str): + """ + High-level interface for solving equations. + + Parameters + ---------- + grid + array of a n-D points. + equal_cls + object from input_preprocessing (see input_preprocessing.Equation). + model + neural network. + mode + Calculation method. (i.e., "NN", "autograd", "mat"). + """ super().__init__(grid, equal_cls, model, mode) + def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ + Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: + """ + Parameters + ---------- + optimizer: + optimizer choice (Adam, SGD, LBFGS). + learning_rate: + determines the step size at each iteration while moving toward a minimum of a loss function. - def optimizer_choice(self, optimizer, learning_rate): - if optimizer=='Adam': - if self.mode =='NN' or self.mode == 'autograd': + Returns + ------- + optimizer + torch.optimizer object as is. + + """ + if optimizer == 'Adam': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.Adam(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.Adam([self.model.requires_grad_()], lr=learning_rate) - - elif optimizer=='SGD': - if self.mode =='NN' or self.mode == 'autograd': + + elif optimizer == 'SGD': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.SGD(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.SGD([self.model.requires_grad_()], lr=learning_rate) - - elif optimizer=='LBFGS': - if self.mode =='NN' or self.mode == 'autograd': + + elif optimizer == 'LBFGS': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.LBFGS(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.LBFGS([self.model.requires_grad_()], lr=learning_rate) - + else: print('Wrong optimizer chosen, optimization was not performed') return self.model - + return optimizer + def solution_print(self, title: Union[str, None] = None, solution_print: bool = False, + solution_save: bool = True, save_dir: Union[str, None] = None): + """ + Visualizes the resulting solution. - def solution_print(self,title=None,solution_print=False,solution_save=True,save_dir=None): - if save_dir==None: - img_dir=os.path.join(os.path.dirname( __file__ ), 'img') - if not(os.path.isdir(img_dir)): + Parameters + ---------- + title + as is. + solution_print + draws a figure. + solution_save: + saves figure. + save_dir: + a directory where saved figure in. + """ + if save_dir == None: + img_dir = os.path.join(os.path.dirname(__file__), 'img') + if not (os.path.isdir(img_dir)): os.mkdir(img_dir) - directory=os.path.abspath(os.path.join(img_dir,str(datetime.datetime.now().timestamp())+'.png')) + directory = os.path.abspath(os.path.join(img_dir, str(datetime.datetime.now().timestamp()) + '.png')) else: - directory=os.path.join(save_dir, str(datetime.datetime.now().timestamp())+'.png') + directory = os.path.join(save_dir, str(datetime.datetime.now().timestamp()) + '.png') if self.mode == 'NN' or self.mode == 'autograd': nvars_model = self.model(self.grid).shape[-1] nparams = self.grid.shape[1] fig = plt.figure() for i in range(nvars_model): if nparams == 1: - ax1 = fig.add_subplot(1,nvars_model,i+1) - if title!=None: - ax1.set_title(title+' variable {}'.format(i)) - ax1.scatter(self.grid.detach().numpy().reshape(-1), self.model(self.grid).detach().numpy().reshape(-1)) + ax1 = fig.add_subplot(1, nvars_model, i + 1) + if title != None: + ax1.set_title(title + ' variable {}'.format(i)) + ax1.scatter(self.grid.detach().numpy().reshape(-1), + self.model(self.grid).detach().numpy().reshape(-1)) else: - ax1 = fig.add_subplot(1,nvars_model,i+1,projection='3d') + ax1 = fig.add_subplot(1, nvars_model, i + 1, projection='3d') - if title!=None: - ax1.set_title(title+' variable {}'.format(i)) + if title != None: + ax1.set_title(title + ' variable {}'.format(i)) - ax1.plot_trisurf(self.grid[:, 0].detach().numpy().reshape(-1), self.grid[:, 1].detach().numpy().reshape(-1), - self.model(self.grid)[:,i].detach().numpy().reshape(-1), cmap=cm.jet, linewidth=0.2, alpha=1) + ax1.plot_trisurf(self.grid[:, 0].detach().numpy().reshape(-1), + self.grid[:, 1].detach().numpy().reshape(-1), + self.model(self.grid)[:, i].detach().numpy().reshape(-1), cmap=cm.jet, + linewidth=0.2, alpha=1) ax1.set_xlabel("x1") ax1.set_ylabel("x2") if solution_print: @@ -107,7 +177,7 @@ def solution_print(self,title=None,solution_print=False,solution_save=True,save_ elif nparams == 2: fig = plt.figure() ax = fig.add_subplot(111, projection='3d') - if title!=None: + if title != None: ax.set_title(title) ax.plot_trisurf(self.grid[0].reshape(-1), self.grid[1].reshape(-1), self.model.reshape(-1).detach().numpy(), cmap=cm.jet, linewidth=0.2, alpha=1) @@ -119,13 +189,73 @@ def solution_print(self,title=None,solution_print=False,solution_save=True,save_ plt.savefig(directory) plt.close() + def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, learning_rate: float = 1e-4, + eps: float = 1e-5, tmin: int = 1000, tmax: float = 1e5, nmodels: Union[int, None] = None, + name: Union[str, None] = None, abs_loss: Union[None, float] = None, use_cache: bool = True, + cache_dir: str = '../cache/', cache_verbose: bool = False, save_always: bool = False, + print_every: Union[int, None] = 100, cache_model: Union[torch.nn.Sequential, None] = None, + patience: int = 5, loss_oscillation_window: int = 100, no_improvement_patience: int = 1000, + model_randomize_parameter: Union[int,float] = 0, optimizer_mode: str = 'Adam', + step_plot_print: Union[bool, int] = False, step_plot_save: Union[bool, int] = False, + image_save_dir: Union[str, None] = None) -> torch.nn.Sequential: + """ + High-level interface for solving equations. + + Parameters + ---------- + lambda_bound + an arbitrary chosen constant, influence only convergence speed. + verbose + more detailed info about training process. + learning_rate + determines the step size at each iteration while moving toward a minimum of a loss function. + eps + arbitrarily small number that uses for loss comparison criterion. + tmax + maximum execution time. + nmodels + ? + name + model name if saved. + abs_loss: Union[None, float] + absolute loss???. + use_cache + as is. + cache_dir + directory where saved cache in. + cache_verbose + more detailed info about models in cache. + save_always + ???? + print_every + prints the state of each given iteration to the command line. + cache_model + model that uses in cache + patience + if the loss is less than a certain value, then the counter increases, + when it reaches the given patience, the calculation stops. + loss_oscillation_window + + no_improvement_patience + + model_randomize_parameter + creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + optimizer_mode + optimizer choice (Adam, SGD, LBFGS). + step_plot_print + draws a figure through each given step. + step_plot_save + saves a figure through each given step. + image_save_dir + a directory where saved figure in. + + Returns + ------- + model + neural network. + - def solve(self, lambda_bound=10, verbose=False, learning_rate=1e-4, eps=1e-5, tmin=1000, - tmax=1e5,nmodels=None,name=None, abs_loss=None, - use_cache=True,cache_dir='../cache/',cache_verbose=False, - save_always=False,print_every=100,cache_model=None, - patience=5,loss_oscillation_window=100,no_improvement_patience=1000, - model_randomize_parameter=0, optimizer_mode='Adam',step_plot_print=False,step_plot_save=False,image_save_dir=None): + """ # prepare input data to uniform format r = self.create_random_fn(model_randomize_parameter) # use cache if needed @@ -138,104 +268,100 @@ def solve(self, lambda_bound=10, verbose=False, learning_rate=1e-4, eps=1e-5, tm cache_model=cache_model) optimizer = self.optimizer_choice(optimizer_mode, learning_rate) - + if True: - #if not use_cache: - min_loss = self.loss_evaluation(lambda_bound=lambda_bound) - - save_cache=False - - if min_loss >0.1 or save_always: # why 0.1? - save_cache=True - - + # if not use_cache: + min_loss = self.loss_evaluation(lambda_bound=lambda_bound) + + save_cache = False + + if min_loss > 0.1 or save_always: # why 0.1? + save_cache = True + # standard NN stuff if verbose: - print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(),min_loss)) - + print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(), min_loss)) + t = 0 - - last_loss=np.zeros(loss_oscillation_window)+float(min_loss) - line=np.polyfit(range(loss_oscillation_window),last_loss,1) - + + last_loss = np.zeros(loss_oscillation_window) + float(min_loss) + line = np.polyfit(range(loss_oscillation_window), last_loss, 1) def closure(): nonlocal cur_loss optimizer.zero_grad() loss = self.loss_evaluation(lambda_bound=lambda_bound) - + loss.backward() cur_loss = loss.item() return loss - - stop_dings=0 - t_imp_start=0 + + stop_dings = 0 + t_imp_start = 0 # to stop train proceduce we fit the line in the loss data - #if line is flat enough 5 times, we stop the procedure - cur_loss=min_loss - while stop_dings<=patience: + # if line is flat enough 5 times, we stop the procedure + cur_loss = min_loss + while stop_dings <= patience: optimizer.step(closure) - last_loss[t%loss_oscillation_window]=cur_loss + last_loss[t % loss_oscillation_window] = cur_loss - - if cur_loss0: - stop_dings+=1 - if self.mode =='NN' or self.mode =='autograd': + if t % loss_oscillation_window == 0: + line = np.polyfit(range(loss_oscillation_window), last_loss, 1) + if abs(line[0] / cur_loss) < eps and t > 0: + stop_dings += 1 + if self.mode == 'NN' or self.mode == 'autograd': self.model.apply(r) if verbose: print('[{}] Oscillation near the same loss'.format(datetime.datetime.now())) print(info_string) if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t),solution_print=step_plot_print,solution_save=step_plot_save,save_dir=image_save_dir) - - if (t-t_imp_start==no_improvement_patience): + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + + if (t - t_imp_start == no_improvement_patience): if verbose: - print('[{}] No improvement in {} steps'.format(datetime.datetime.now(),no_improvement_patience)) + print('[{}] No improvement in {} steps'.format(datetime.datetime.now(), no_improvement_patience)) print(info_string) if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t),solution_print=step_plot_print,solution_save=step_plot_save,save_dir=image_save_dir) - t_imp_start=t - stop_dings+=1 - if self.mode =='NN' or self.mode =='autograd': - self.model.apply(r) + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + t_imp_start = t + stop_dings += 1 + if self.mode == 'NN' or self.mode == 'autograd': + self.model.apply(r) - - if abs_loss!=None and cur_loss tmax: break if (save_cache and use_cache) or save_always: - if self.mode=='mat': - self.save_model_mat(cache_dir=cache_dir,name=name) + if self.mode == 'mat': + self.save_model_mat(cache_dir=cache_dir, name=name) else: - self.save_model(self.model, self.model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir,name=name) + self.save_model(self.model, self.model.state_dict(), optimizer.state_dict(), cache_dir=cache_dir, + name=name) return self.model - - - - - diff --git a/test.ipynb b/test.ipynb new file mode 100644 index 00000000..19bc6ee8 --- /dev/null +++ b/test.ipynb @@ -0,0 +1,401 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 223, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import torch\n", + "import pandas as pd\n", + "import scipy\n", + "from scipy.io import loadmat\n", + "import seaborn as sns\n", + "from points_type import *\n", + "from matplotlib import cm\n", + "from input_preprocessing import *\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "from metrics import *\n", + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": 228, + "outputs": [], + "source": [ + "test_data = loadmat('examples/benchmarking_data/schrodinger_test.mat')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 229, + "outputs": [], + "source": [ + "data = test_data['uu'].reshape(-1,1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 230, + "outputs": [], + "source": [ + "u = np.real(data).reshape(-1)\n", + "v = np.imag(data).reshape(-1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 127, + "outputs": [], + "source": [ + "x_grid = np.linspace(-5,5,256)\n", + "t_grid = np.linspace(0,np.pi/2,201)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 138, + "outputs": [], + "source": [ + "n = [10, 20, 30, 40]\n", + "dct = {'grid': [], 'interpolated_values_u': []}\n", + "for number in n:\n", + " x_grid = np.linspace(-5,5,number+1)\n", + " t_grid = np.linspace(0,np.pi/2,number+1)\n", + "\n", + " x = torch.from_numpy(x_grid)\n", + " t = torch.from_numpy(t_grid)\n", + "\n", + " grid = torch.cartesian_prod(x, t).float()\n", + " interpolated_values = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", + " N = [number for i in range(len(interpolated_values))]\n", + " dct['grid'].extend(N)\n", + " dct['interpolated_values_u'].extend(interpolated_values)\n", + "test_data = pd.DataFrame(dct)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 177, + "outputs": [], + "source": [ + "experiment_data_10 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[10]_cache=False.csv')\n", + "experiment_data_20_30 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[20, 30]_cache=False.csv')\n", + "experiment_data_40 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[40]_cache=False.csv')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 178, + "outputs": [], + "source": [ + "time_list_20 = [2207.342264, 1902.780795 , 2051.769395, 1990.625440, 1669.295443, 1630.366187, 1723.594879, 1735.121449,\n", + " 1989.412900, 1873.436806]\n", + "time_list_30 = [3609.354969, 3564.459932, 3626.499491, 3613.533968, 3818.807240, 3496.345418, 3819.675368,\n", + " 3774.777136, 3795.635416, 3678.129626]\n", + "time_20 = []\n", + "for val in time_list_20:\n", + " time_20_i = [val for i in range(21*21)]\n", + " time_20.append(time_20_i)\n", + "\n", + "time_30 = []\n", + "for val in time_list_30:\n", + " time_30_i = [val for i in range(31*31)]\n", + " time_30.append(time_30_i)\n", + "\n", + "time_20 = np.concatenate(time_20)\n", + "time_30 = np.concatenate(time_30)\n", + "time_20_30 = np.concatenate((time_20, time_30))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 179, + "outputs": [], + "source": [ + "experiment_data_20_30['time'] = time_20_30" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 180, + "outputs": [], + "source": [ + "experiment_data = pd.concat([experiment_data_10, experiment_data_20_30, experiment_data_40])" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 181, + "outputs": [ + { + "data": { + "text/plain": " n_iter grid u v time\n0 0 10 0.022888 -0.000939 614.424292\n1 0 10 0.041829 0.003819 614.424292\n2 0 10 0.055094 0.011037 614.424292\n3 0 10 0.062073 0.018570 614.424292\n4 0 10 0.065190 0.025084 614.424292\n... ... ... ... ... ...\n16805 9 40 0.029098 0.052447 7034.597967\n16806 9 40 0.028391 0.053487 7034.597967\n16807 9 40 0.027643 0.054499 7034.597967\n16808 9 40 0.026854 0.055485 7034.597967\n16809 9 40 0.026025 0.056450 7034.597967\n\n[32040 rows x 5 columns]", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
n_itergriduvtime
00100.022888-0.000939614.424292
10100.0418290.003819614.424292
20100.0550940.011037614.424292
30100.0620730.018570614.424292
40100.0651900.025084614.424292
..................
168059400.0290980.0524477034.597967
168069400.0283910.0534877034.597967
168079400.0276430.0544997034.597967
168089400.0268540.0554857034.597967
168099400.0260250.0564507034.597967
\n

32040 rows × 5 columns

\n
" + }, + "execution_count": 181, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "experiment_data" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 191, + "outputs": [ + { + "data": { + "text/plain": "604.3163278102875" + }, + "execution_count": 191, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "i = 1\n", + "n = 10\n", + "experiment_data.query(f'n_iter == {i} and grid == {n}')['time'].values[0]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 208, + "outputs": [], + "source": [ + "experiment_result = {'grid': [], 'n_iter': [], 'rmse': [],'nrmse': [], 'time': []}\n", + "for grid in range(10,50,10):\n", + " for n_iter in range(10):\n", + " test = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", + " result = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['u'].values\n", + " rmse = np.sqrt(np.mean((test - result) ** 2))\n", + " nrmse = rmse / np.std(result)\n", + " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", + " experiment_result['grid'].append(grid+1)\n", + " experiment_result['n_iter'].append(n_iter)\n", + " experiment_result['rmse'].append(rmse)\n", + " experiment_result['nrmse'].append(nrmse)\n", + " experiment_result['time'].append(time)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 209, + "outputs": [], + "source": [ + "data = pd.DataFrame(experiment_result)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 210, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 210, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 2)\n", + "\n", + "sns.boxplot(ax=axes[0],x='grid', y='time', data=data , showfliers=False)\n", + "\n", + "sns.boxplot(ax=axes[1],x='grid', y='rmse', data=data, showfliers=False)\n" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 233, + "outputs": [], + "source": [ + "x_grid = np.linspace(-5,5,256)\n", + "t_grid = np.linspace(0,np.pi/2,201)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()\n", + "# model_interp = test_data[test_data['grid'] == 10]['interpolated_values_u'].values" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 237, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 237, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", + " v, cmap=cm.jet,linewidth=0.2, alpha=1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 216, + "outputs": [ + { + "data": { + "text/plain": "array([ 0.02695056, 0.03260382, 0.03420716, 0.03475574, 0.03492699,\n 0.034309 , 0.03360063, 0.03225105, 0.03112513, 0.02763927,\n 0.02636017, 0.07295037, 0.07319679, 0.069523 , 0.06700413,\n 0.06497201, 0.06289575, 0.06013422, 0.05698216, 0.05429713,\n 0.05016175, 0.04734092, 0.19711746, 0.1959615 , 0.19299055,\n 0.19102151, 0.1856891 , 0.17916657, 0.17192488, 0.16365532,\n 0.15508521, 0.14466002, 0.13431266, 0.52562333, 0.51784725,\n 0.49690626, 0.47210287, 0.44857975, 0.43657531, 0.4349855 ,\n 0.43444197, 0.42871452, 0.40757898, 0.37171966, 1.28071124,\n 1.19795536, 0.97999627, 0.71583666, 0.52882028, 0.52176611,\n 0.69010228, 0.92236583, 1.08294288, 1.08007742, 0.90557495,\n 1.99958073, 1.76528341, 0.98348639, -0.58226342, -2.94717013,\n -3.68001601, -0.72895298, 1.52340548, 2.18368684, 2.02259221,\n 1.41672212, 1.31929761, 1.22996009, 0.99357603, 0.70483754,\n 0.4996009 , 0.49408717, 0.68434882, 0.94443911, 1.12189913,\n 1.11994926, 0.93233271, 0.54579459, 0.53729191, 0.51428934,\n 0.48712315, 0.46181896, 0.44922325, 0.44867047, 0.44995444,\n 0.44506521, 0.42373231, 0.3863336 , 0.20492919, 0.20358779,\n 0.20035814, 0.19838182, 0.1929824 , 0.18638219, 0.179006 ,\n 0.17072315, 0.16164543, 0.15096439, 0.14012327, 0.0758565 ,\n 0.07634097, 0.07252998, 0.06995601, 0.0676208 , 0.0653251 ,\n 0.06267691, 0.0591192 , 0.05621535, 0.05225826, 0.0491113 ,\n 0.02802405, 0.03258097, 0.0342325 , 0.03482958, 0.03496365,\n 0.034333 , 0.03373345, 0.03231509, 0.03101465, 0.02774415,\n 0.02632516])" + }, + "execution_count": 216, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 231, + "outputs": [ + { + "data": { + "text/plain": "array([0.02695056, 0.02827012, 0.0288274 , ..., 0.02668994, 0.02647879,\n 0.02632516])" + }, + "execution_count": 231, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "u" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From ce1eda66faba6c2929e3d0823ed242ccbf9e7d52 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 10 Nov 2022 16:00:18 +0300 Subject: [PATCH 007/225] Some docs improvements --- cache.py | 117 ++++++--------- config.py | 9 +- examples/example_schrodinger.py | 28 ++-- finite_diffs.py | 11 +- input_preprocessing.py | 211 +++++++++----------------- metrics.py | 252 +++++++++----------------------- points_type.py | 76 ++++------ solver.py | 18 +-- 8 files changed, 236 insertions(+), 486 deletions(-) diff --git a/cache.py b/cache.py index 059827dd..282ddd09 100644 --- a/cache.py +++ b/cache.py @@ -10,7 +10,9 @@ import os import glob import numpy as np -from typing import Union +from typing import Union, Tuple, Any + +from torch import Tensor from metrics import Solution from input_preprocessing import Equation, EquationMixin @@ -31,14 +33,11 @@ def create_random_fn(eps: Union[int,float]): """ Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - Parameters - ---------- - eps: - randomize parameter - - Returns - ------- + Args: + eps: randomize parameter + Returns: + randomize_params: smth """ def randomize_params(m): if type(m)==torch.nn.Linear or type(m)==torch.nn.Conv2d: @@ -47,13 +46,12 @@ def randomize_params(m): return randomize_params - def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', + def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/', nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: ''' Looking for a saved cache. - Parameters - ---------- + Args: lambda_bound: float an arbitrary chosen constant, influence only convergence speed. cache_dir: str @@ -63,8 +61,7 @@ def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', cache_verbose: bool more detailed info about models in cache. - Returns - ------- + Returns: best_checkpoint min_loss @@ -138,18 +135,12 @@ def save_model(self, prep_model: torch.nn.Sequential, state: dict, optimizer_sta """ Saved model in a cache (uses for 'NN' and 'autograd' methods). - Parameters - ---------- - prep_model - model to save - state - a dict holding current model state (i.e., dictionary that maps each layer to its parameter tensor). - optimizer_state - a dict holding current optimization state (i.e., values, hyperparameters). - cache_dir - directory where saved cache in. - name - name for a model + Args: + prep_model: model to save. + state: a dict holding current model state (i.e., dictionary that maps each layer to its parameter tensor). + optimizer_state: a dict holding current optimization state (i.e., values, hyperparameters). + cache_dir: directory where saved cache in. + name: name for a model. """ if name==None: name=str(datetime.datetime.now().timestamp()) @@ -166,8 +157,7 @@ def save_model_mat(self, cache_dir: str = '../cache/', name: Union[str, None] = """ Saved model in a cache (uses for 'mat' method). - Parameters - ---------- + Args: cache_dir a directory where saved cache in. name @@ -203,21 +193,17 @@ def closure(): self.save_model(cache_model,cache_model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir, name=name) - def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> tuple[Any, dict]: """ - ??? + Smth - Parameters - ---------- - trained_model - ??? - cache_verbose: - more detailed info about models in cache. + Args: + trained_model: smth + cache_verbose: more detailed info about models in cache. - Returns - ------- - model - optimizer.state_dict + Returns: + model: NN or mat + optimizer.state_dict: dict """ optimizer = torch.optim.Adam(self.model.parameters(), lr=0.001) @@ -240,21 +226,18 @@ def closure(): return self.model, optimizer.state_dict() - def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ + tuple[Any, None], tuple[Any, Union[dict, Any]]]: """ - ??? + Smth - Parameters - ---------- - cache_checkpoint - ??? - cache_verbose - more detailed info about models in cache. + Args: + cache_checkpoint: smth + cache_verbose: more detailed info about models in cache. - Returns - ------- - model - optimizer_state + Returns: + model: + optimizer_state: """ # do nothing if cache is empty if cache_checkpoint==None: @@ -281,29 +264,23 @@ def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, cache_verbose: bool,model_randomize_parameter: Union[float, None], - cache_model: torch.nn.Sequential) -> Union[torch.nn.Sequential, torch.Tensor]: + cache_model: torch.nn.Sequential) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: """ Restores the model from the cache and uses it for retraining. - Parameters - ---------- - cache_dir - a directory where saved cache in. - nmodels - ??? - lambda_bound - an arbitrary chosen constant, influence only convergence speed. - cache_verbose - more detailed info about models in cache. - model_randomize_parameter - Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - cache_model - cached model + Args: + cache_dir: a directory where saved cache in. + nmodels: smth + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + cache_verbose: more detailed info about models in cache. + model_randomize_parameter: Creates a random model parameters (weights, biases) multiplied with a given + randomize parameter. + cache_model: cached model - Returns - ------- - model - min_loss + + Returns: + model: NN or mat + min_loss: min loss as is. """ r = self.create_random_fn(model_randomize_parameter) diff --git a/config.py b/config.py index 9c185cf8..a41e034d 100644 --- a/config.py +++ b/config.py @@ -117,13 +117,11 @@ def __init__(self, *args): If there is passed path to a custom config, we try to load it and change default parameters - Parameters - ---------- + Args: config_path: str, optional path to a custom config - Returns - ------- + Returns: self: Config config used in solver.optimization_solver function """ @@ -157,8 +155,7 @@ def set_parameter(self, parameter_string: str, value: Union[bool,float, int, Non We run checks to see we set them corretly - Parameters - ---------- + Args: parameter_string: string in format 'module.parameter' diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 3cd3e65e..dd7e472c 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -20,7 +20,7 @@ result = [] device = torch.device('cpu') res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10, 20, 30, 40] +grd = [10] for n in grd: for i in range(10): @@ -194,14 +194,20 @@ schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') @@ -211,9 +217,9 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=True, learning_rate=1e-3, + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=100,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) diff --git a/finite_diffs.py b/finite_diffs.py index 682b6460..60a83c46 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -22,8 +22,7 @@ def finite_diff_shift(diff: list, axis: int, mode: str) -> list: mode: the finite difference mode (i.e., forward, backward, central). Returns: - diff_list: list with shifted points - + diff_list: list with shifted points. """ # """ @@ -75,12 +74,9 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: varn: Dimensionality of the problem. axes_mode: 'central' or combination of 'f' and 'b'. - Returns: - finite_diff: transformed axes due to finite difference mode. - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). - - """ order = len(axes) finite_diff = [] @@ -164,7 +160,6 @@ def second_order_shift(diff: list, axis: int, mode: str) -> list: Returns: diff_list: list with shifted points. - """ diff_1 = copy(diff) diff_2 = copy(diff) @@ -193,8 +188,6 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[li Returns: - finite_diff: transformed axes due to finite difference mode. - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). - - """ order = len(axes) finite_diff = [] @@ -238,8 +231,6 @@ def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: Returns: sign_list: list, with signs for corresponding points. - - """ sign_list = [1] for i in range(order): diff --git a/input_preprocessing.py b/input_preprocessing.py index e74b1dda..8116008c 100644 --- a/input_preprocessing.py +++ b/input_preprocessing.py @@ -17,16 +17,11 @@ def operator_unify(operator: list) -> list: """ This one allows to make operator form simpler. - Parameters - ---------- - operator - operator in input form. - - Returns - ------- - unified_operator - operator in unified form for preprocessing. + Args: + operator: operator in input form. + Returns: + unified_operator: operator in unified form for preprocessing. """ unified_operator = [] for term in operator: @@ -58,16 +53,11 @@ def op_dict_to_list(opdict: dict) -> list: """ Transform operator in dict form to list. - Parameters - ---------- - opdict - operator in dict form. - - Returns - ------- - oplist - operator in list (input) form. + Args: + opdict: operator in dict form. + Returns: + oplist: operator in list (input) form. """ return list([list(term.values()) for term in opdict.values()]) @@ -76,16 +66,12 @@ def closest_point(grid: torch.Tensor, target_point: float) -> int: """ Defines the closest boundary point to the grid. Auxiliary function. - Parameters - ---------- - grid - array of a n-D points. - target_point - boundary point. - Returns - ------- - min_pos - position of the boundary point on the grid. + Args: + grid: array of a n-D points. + target_point: boundary point. + + Returns: + min_pos: position of the boundary point on the grid. """ min_dist = np.inf pos = 0 @@ -103,16 +89,12 @@ def bndpos(grid: torch.Tensor, bnd: torch.Tensor) -> Union[list, int]: """ Returns the position of the boundary points on the grid. - Parameters - ---------- - grid - grid for coefficient in form of torch.Tensor mapping. - bnd - boundary conditions. - Returns - ------- - bndposlist - list of positions of the boundary points on the grid. + Args: + grid: grid for coefficient in form of torch.Tensor mapping. + bnd: boundary conditions. + + Returns: + bndposlist: list of positions of the boundary points on the grid. """ if grid.shape[0] == 1: grid = grid.reshape(-1,1) @@ -152,16 +134,11 @@ def bnd_unify(bconds: list) -> list: """ Serves to add None instead of empty operator. - Parameters - ---------- - bconds - boundary in conventional form (see examples). - - Returns - ------- - unified_bconds - boundary in input-friendly form. + Args: + bconds: boundary in conventional form (see examples). + Returns: + unified_bconds: boundary in input-friendly form. """ if bconds==None: return None @@ -214,21 +191,13 @@ def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list """ Prepares equation, boundary conditions for NN method. - Parameters - ---------- - grid: - array of a n-D points. - operator: - equation. - bconds: - boundary conditions. - h - discretizing parameter in finite difference method (i.e., grid resolution for scheme). - inner_order: - accuracy inner order for finite difference. Default = 1 - boundary_order: - accuracy boundary order for finite difference. Default = 2 - + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 """ self.grid = grid self.operator = operator @@ -249,9 +218,6 @@ def operator_to_type_op(self, unified_operator: list, nvars: int, axes_scheme_ty Returns: fin_diff_op: list, where the conventional operator changed to steps and signs (see scheme_build function description). - - - """ fin_diff_op = [] for term in unified_operator: @@ -319,11 +285,8 @@ def type_op_to_grid_shift_op(self, fin_diff_op: list, grid_points: torch.Tensor) fin_diff_op: operator_to_type_op result. grid_points: grid with sorted nodes. - Returns: shift_grid_op: final form of differential operator used in the algorithm for single grid type. - - """ shift_grid_op = [] for term1 in fin_diff_op: @@ -361,12 +324,8 @@ def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: unified_operator: operator_unify result. grid_dict: result Points_type.grid_sort - Returns: operator_list: final form of differential operator used in the algorithm for subset grid types. - - - """ operator_list = [] nvars = list(grid_dict.values())[0].shape[-1] @@ -412,11 +371,8 @@ def bnd_prepare(self): """ Prepares boundary conditions from conventional form to input form. - Returns - ------- - prepared_bcond : list - boundary in input form. - + Returns: + prepared_bcond: boundary in input form. """ grid_dict = self.grid_sort(self.grid) sorted_grid = torch.cat(list(grid_dict.values())) @@ -453,14 +409,11 @@ def __init__(self, grid: torch.Tensor, operator: Union[list, dict], bconds: list """ Prepares equation for autograd method (i.e., from conventional form to input form). - Parameters - ---------- - grid - array of a n-D points. - operator: - equation. - bconds: - boundary conditions. + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + """ self.grid = grid self.operator = operator @@ -471,17 +424,13 @@ def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: """ Prepares equation's coefficients for autograd method. - Parameters - ---------- - unified_operator - result input_preprocessing.EquationMixin.operator_unify. - grid - array of a n-D points. + Args: + unified_operator: result input_preprocessing.EquationMixin.operator_unify. + grid: array of a n-D points. + + Returns: + autograd_op: prepared autograd operator. - Returns - ------- - autograd_op - prepared autograd operator. """ autograd_op=[] for term in unified_operator: @@ -503,11 +452,8 @@ def operator_prepare(self): """ Changes the operator in conventional form to the input one. - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm. - + Returns: + operator_list: final form of differential operator used in the algorithm. """ if type(self.operator) is list and type(self.operator[0]) is dict: num_of_eq = len(self.operator) @@ -527,10 +473,8 @@ def bnd_prepare(self): """ Prepares boundary conditions from conventional form to input form. - Returns - ------- - prepared_bconds : list - boundary in input form. + Returns: + prepared_bconds: boundary in input form. """ bconds = self.bnd_unify(self.bconds) if bconds==None: @@ -563,14 +507,10 @@ def __init__(self, grid, operator, bconds): """ Prepares equation for matrix optimization method (i.e., from conventional form to input form). - Parameters - ---------- - grid: - array of a n-D points. - operator: - equation. - bconds: - boundary conditions. + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. """ self.grid = grid self.operator = operator @@ -580,11 +520,8 @@ def operator_prepare(self) -> list: """ Prepares operator from conventional form to input form - Returns - ------- - prepared_operator - final form of differential operator used in the algorithm - + Returns: + prepared_operator: final form of differential operator used in the algorithm. """ if type(self.operator) == dict: operator_list = self.op_dict_to_list(self.operator) @@ -595,10 +532,8 @@ def bnd_prepare(self) -> list: """ Prepares boundary conditions from conventional form to input form. - Returns - ------- - prepared_bconds - final form of boundary conditions used in the algorithm. + Returns: + prepared_bconds: final form of boundary conditions used in the algorithm. """ prepared_bconds=[] @@ -637,21 +572,13 @@ def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list """ Interface for preparing equations due to chosen calculation method. - Parameters - ---------- - grid: - array of a n-D points. - operator: - equation. - bconds: - boundary conditions. - h - discretizing parameter in finite difference method (i.e., grid resolution for scheme). - inner_order: - accuracy inner order for finite difference. Default = 1 - boundary_order: - accuracy boundary order for finite difference. Default = 2 - + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 """ self.grid = grid self.operator = operator @@ -663,15 +590,11 @@ def set_strategy(self, strategy: str) -> Union[Equation_NN, Equation_mat, Equati """ Setting the calculation method. - Parameters - ---------- - strategy: str - Calculation method. (i.e., "NN", "autograd", "mat"). + Args: + strategy: Calculation method. (i.e., "NN", "autograd", "mat"). - Returns - ------- - chosen_method : - A given calculation method. + Returns: + chosen_method: A given calculation method. """ if strategy == 'NN': return Equation_NN(self.grid, self.operator, self.bconds, h=self.h, inner_order=self.inner_order, boundary_order=self.boundary_order) diff --git a/metrics.py b/metrics.py index 7509677e..4c7566be 100644 --- a/metrics.py +++ b/metrics.py @@ -20,12 +20,10 @@ def __init__(self, grid: torch.Tensor, model: torch.nn.Sequential): """ Taking numerical derivative for 'NN' method. - Parameters - ---------- - grid: - array of a n-D points. - model: - neural network. + Args: + grid: array of a n-D points. + model: neural network. + """ self.grid = grid self.model = model @@ -35,15 +33,10 @@ def take_derivative(self, term: Union[list, int, torch.Tensor]) -> torch.Tensor: Auxiliary function serves for single differential operator resulting field derivation. - Parameters - ---------- - term - differential operator in conventional form. - - Returns - ------- - der_term - resulting field, computed on a grid. + Args: + term: differential operator in conventional form. + Returns: + der_term: resulting field, computed on a grid. """ # it is may be int, function of grid or torch.Tensor @@ -82,68 +75,28 @@ def __init__(self, grid, model): """ Taking numerical derivative for 'autograd' method. - Parameters - ---------- - grid: - array of a n-D points. - model: - neural network. + Args: + grid: array of a n-D points. + model: neural network. + """ self.grid = grid self.model = model - @staticmethod - def nn_autograd_simple(model: torch.nn.Sequential, points: torch.Tensor, order, axis=0) -> torch.Tensor: - """ - - Parameters - ---------- - model: - neural network - points: - - order: - - axis: - - - Returns - ------- - gradient_full - - """ - points.requires_grad = True - gradient_full = [] - f = model(points).sum(0) - for i in range(len(f)): - fi = f[i] - for j in range(order): - grads, = torch.autograd.grad(fi, points, create_graph=True) - fi = grads[:, axis].sum() - gradient_full.append(grads[:, axis].reshape(-1, 1)) - gradient_full = torch.hstack(gradient_full) - return gradient_full @staticmethod def nn_autograd_mixed(model: torch.nn.Sequential, points, axis=[0]): """ Computes derivative on the grid using autograd method. - Parameters - ---------- - model: - neural network - points: - points, where numerical derivative is calculated - axis: - - - - Returns - ------- - gradient_full + Args: + model: neural network + points: points, where numerical derivative is calculated + axis: smth - """ + Returns: + gradient_full: smth + """ points.requires_grad = True gradient_full = [] f = model(points).sum(0) @@ -156,32 +109,6 @@ def nn_autograd_mixed(model: torch.nn.Sequential, points, axis=[0]): gradient_full = torch.hstack(gradient_full) return gradient_full - def nn_autograd(self, *args, axis=0) -> torch.Tensor: - """ - Wrap just for convenience metrics.Derivative_autograd.nn_autograd_simple and - metrics.Derivative_autograd.nn_autograd_mixed in one function. - - Parameters - ---------- - args - could be 2 or 3 arguments. It depends on which function will be used. - axis - - - Returns - ------- - grads - - - """ - model = args[0] - points = args[1] - if len(args) == 3: - order = args[2] - grads = self.nn_autograd_simple(model, points, order, axis=axis) - else: - grads = self.nn_autograd_mixed(model, points, axis=axis) - return grads def take_derivative(self, term) -> torch.Tensor: """ @@ -191,11 +118,8 @@ def take_derivative(self, term) -> torch.Tensor: Args: term: differential operator in conventional form. - Returns: der_term: resulting field, computed on a grid. - - """ # it is may be int, function of grid or torch.Tensor coeff = term[0] @@ -211,7 +135,7 @@ def take_derivative(self, term) -> torch.Tensor: if derivative == [None]: der = self.model(self.grid)[:, variables[j]].reshape(-1, 1) else: - der = self.nn_autograd(self.model, self.grid, axis=derivative)[0:, variables[j]].reshape(-1, 1) + der = self.nn_autograd_mixed(self.model, self.grid, axis=derivative)[0:, variables[j]].reshape(-1, 1) der_term = der_term * der ** power[j] @@ -265,26 +189,17 @@ def derivative_1d(model: torch.Tensor, grid: torch.Tensor) -> torch.Tensor: def derivative(u_tensor: torch.Tensor, h_tensor: torch.Tensor, axis: int, scheme_order: int = 1, boundary_order: int = 1) -> torch.Tensor: """ + Computing derivative for 'matrix' method. - Parameters - ---------- - u_tensor - - h_tensor - - axis - axis along which the derivative is calculated. - scheme_order - accuracy inner order for finite difference. Default = 1 - boundary_order - accuracy boundary order for finite difference. Default = 2 - - Returns - ------- - du - computed derivative. - + Args: + u_tensor: smth. + h_tensor: smth. + axis: axis along which the derivative is calculated. + scheme_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 + Returns: + du: computed derivative. """ # print('shape=',u_tensor.shape) if (u_tensor.shape[0] == 1): @@ -390,18 +305,13 @@ def derivative(u_tensor: torch.Tensor, h_tensor: torch.Tensor, axis: int, def take_derivative(self, term) -> torch.Tensor: """ Auxiliary function serves for single differential operator resulting field - derivation - - Parameters - ---------- - term : TYPE - differential operator in conventional form. + derivation. - Returns - ------- - der_term - resulting field, computed on a grid. + Args: + term: differential operator in conventional form. + Returns: + der_term: resulting field, computed on a grid. """ # it is may be int, function of grid or torch.Tensor coeff = term[0] @@ -432,12 +342,9 @@ def __init__(self, grid, model): """ Interface for taking numerical derivative due to chosen calculation method. - Parameters - ---------- - grid - array of a n-D points. - model - neural network or matrix depending on the selected mode. + Args: + grid: array of a n-D points. + model: neural network or matrix depending on the selected mode. """ self.grid = grid self.model = model @@ -446,15 +353,11 @@ def set_strategy(self, strategy: str) -> Union[Derivative_NN, Derivative_autogra """ Setting the calculation method. - Parameters - ---------- - strategy - Calculation method. (i.e., "NN", "autograd", "mat") + Args: + strategy: Calculation method. (i.e., "NN", "autograd", "mat"). - Returns - ------- - prepared_equation - equation in input form for a given calculation method + Returns: + prepared_equation: equation in input form for a given calculation method. """ if strategy == 'NN': return Derivative_NN(self.grid, self.model) @@ -473,16 +376,12 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa """ Interface for computing loss due to chosen calculation method. - Parameters - ---------- - grid - array of a n-D points. - equal_cls - object from input_preprocessing (see input_preprocessing.Equation). - model - neural network or matrix depending on the selected mode. - mode - a given calculation method. + Args: + grid: array of a n-D points. + equal_cls: object from input_preprocessing (see input_preprocessing.Equation). + model: neural network or matrix depending on the selected mode. + mode: a given calculation method. + """ self.grid = grid self.prepared_operator = equal_cls.operator_prepare() @@ -494,15 +393,12 @@ def apply_operator(self, operator: list) -> torch.Tensor: """ Deciphers equation in a single grid subset to a field. - Parameters - ---------- - operator - Single (len(subset)==1) operator in input form. See + Args: + operator: Single (len(subset)==1) operator in input form. See input_preprocessing.operator_prepare() - Returns - ------- - total + Returns: + total: smth """ derivative = Derivative(self.grid, self.model).set_strategy(self.mode).take_derivative @@ -519,16 +415,12 @@ def apply_bconds_set(self, operator_set: list) -> torch.Tensor: """ Deciphers equation in a whole grid to a field. - Parameters - ---------- - operator_set - Multiple (len(subset)>=1) operators in input form. See + Args: + operator_set: Multiple (len(subset)>=1) operators in input form. See input_preprocessing.operator_prepare(). - Returns - ------- - field_part: - + Returns: + field_part: smth """ field_part = [] for operator in operator_set: @@ -540,15 +432,11 @@ def b_op_val_calc(self, bcond: list) -> torch.Tensor: """ Auxiliary function. Serves only to evaluate operator on the boundary. - Parameters - ---------- - bcond - terms of prepared boundary conditions (see input_preprocessing.bnd_prepare) in input form. - Returns - ------- - b_op_val - calculated operator on the boundary. + Args: + bcond: terms of prepared boundary conditions (see input_preprocessing.bnd_prepare) in input form. + Returns: + b_op_val: calculated operator on the boundary. """ b_pos = bcond[0] bop = bcond[1] @@ -575,12 +463,9 @@ def apply_bconds_operator(self) -> tuple[torch.Tensor, torch.Tensor]: """ Auxiliary function. Serves only to evaluate boundary values and true boundary values. - Returns - ------- - b_val - calculated model boundary values. - true_b_val - true grid boundary values. + Returns: + b_val: calculated model boundary values. + true_b_val: true grid boundary values. """ true_b_val_list = [] b_val_list = [] @@ -620,16 +505,11 @@ def loss_evaluation(self, lambda_bound: int = 10) -> torch.Tensor: """ Computes loss. - Parameters - ---------- - lambda_bound - an arbitrary chosen constant, influence only convergence speed. - - Returns - ------- - loss - loss. + Args: + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + Returns: + loss: loss. """ if self.mode == 'mat' or self.mode == 'autograd': if self.prepared_bconds == None: diff --git a/points_type.py b/points_type.py index 493eec85..e8b545e7 100644 --- a/points_type.py +++ b/points_type.py @@ -13,19 +13,14 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: Shifts all values of an array 'grid' on a value 'shift' in a direction of axis 'axis', somewhat is equivalent to a np.roll. - Parameters - ---------- - grid: torch.Tensor (torch.float64) - array of a n-D points. - axis:int - axis to which the shift is applied. - shift: float - shift value. - - Returns - ------- - grid_shift: torch.Tensor (torch.float64) - shifted array of a n-D points. + Args: + grid: array of a n-D points. + axis: axis to which the shift is applied. + shift: shift value. + + Returns: + grid_shift: shifted array of a n-D points. + """ grid_shift = grid.clone() @@ -42,16 +37,13 @@ def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: coordinates of `M` points in `K`dimensions for which Delaunay triangulation will be computed. - Parameters - ---------- - p: torch.Tensor (torch.float64) - shifted array of a n-D points. - hull: - initial array of a n-D points. - Returns - ------- - in_hull_array: - array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. + Args: + p: shifted array of a n-D points. + hull: initial array of a n-D points. + + Returns: + in_hull_array: array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. + """ if p.shape[1] > 1: if not isinstance(hull, Delaunay): @@ -72,22 +64,15 @@ def point_typization(grid: torch.Tensor) -> dict: """ Allocating subsets for FD (i.e., 'f', 'b', 'central'). - Parameters - ---------- - grid : torch.Tensor (torch.float64) - array of a n-D points. - - Returns - ------- - point_type : dict - dictionary point:type with a points in a 'grid' above - type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string - is a dimension n - 'f' means that if we add small number to a position of corresponding - coordinate we stay in the 'hull' - 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull'. + Args: + grid: array of a n-D points. + + Returns: + point_type: type with a points in a 'grid' above. Type may be 'central' - inner point + and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add + small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we + subtract small number from o a position of corresponding coordinate we stay in the 'hull'. + """ direction_list = [] for axis in range(grid.shape[1]): @@ -123,15 +108,12 @@ def grid_sort(grid: torch.Tensor) -> dict: """ Sorting grid points for each subset from result Points_type.point_typization. - Parameters - ---------- - grid : torch.Tensor (torch.float64) - array of a n-D points. + Args: + grid: tarray of a n-D points. + + Returns: + grid_dict: sorted grid in each subset (see Points_type.point_typization). - Returns - ------- - grid_dict : dict - sorted grid in each subset (see Points_type.point_typization). """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) diff --git a/solver.py b/solver.py index c306873f..eacc22ca 100644 --- a/solver.py +++ b/solver.py @@ -59,8 +59,7 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa """ High-level interface for solving equations. - Parameters - ---------- + Args: grid array of a n-D points. equal_cls @@ -75,15 +74,13 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: """ - Parameters - ---------- + Args: optimizer: optimizer choice (Adam, SGD, LBFGS). learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. - Returns - ------- + Returns: optimizer torch.optimizer object as is. @@ -117,8 +114,7 @@ def solution_print(self, title: Union[str, None] = None, solution_print: bool = """ Visualizes the resulting solution. - Parameters - ---------- + Args: title as is. solution_print @@ -201,8 +197,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea """ High-level interface for solving equations. - Parameters - ---------- + Args: lambda_bound an arbitrary chosen constant, influence only convergence speed. verbose @@ -249,8 +244,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea image_save_dir a directory where saved figure in. - Returns - ------- + Returns: model neural network. From 116de189282dd6cc60dd25a0155120df9ea27b22 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:11:36 +0300 Subject: [PATCH 008/225] Update requirements.txt --- requirements.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6af3841d..0ea69fc1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -matplotlib==3.6.0; python_version == '3.9' -numpy==1.23.4 -pandas==1.5.0 -scipy==1.9.2 -seaborn==0.12.0 -torch==1.12.1 +matplotlib +numpy +pandas +scipy +seaborn +torch autodocsumm From 2ccefa14f7493f63077fa49a026b934a2874c44c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 10 Nov 2022 19:27:51 +0300 Subject: [PATCH 009/225] Create index.rst --- docs/source/index.rst | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 docs/source/index.rst diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 00000000..7f8633a1 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,44 @@ +{\rtf1\ansi\ansicpg1251\cocoartf2639 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 HelveticaNeue-Bold;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue0;\red202\green202\blue202; +\red70\green137\blue204;\red183\green111\blue179;\red167\green197\blue152;\red255\green255\blue255;\red27\green31\blue35; +} +{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\csgray\c0\c0;\cssrgb\c83137\c83137\c83137; +\cssrgb\c33725\c61176\c83922;\cssrgb\c77255\c52549\c75294;\cssrgb\c70980\c80784\c65882;\cssrgb\c100000\c100000\c100000;\cssrgb\c14118\c16078\c18431; +} +\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 +\deftab720 +\pard\pardeftab720\partightenfactor0 + +\f0\fs24 \cf2 \cb3 \expnd0\expndtw0\kerning0 +\outl0\strokewidth0 \strokec4 Welcome to TEDEouS documentation!\ +\pard\pardeftab720\partightenfactor0 + +\f1\b \cf2 \strokec5 ================================== +\f0\b0 \strokec4 \ +\ +\pard\pardeftab720\partightenfactor0 +\cf2 \strokec6 .. container::\strokec4 \ +\ + | There is contained main documentation for the \strokec5 `TEDEouS framework `__\strokec4 .\ +\ +Content:\ +\pard\pardeftab720\partightenfactor0 + +\f1\b \cf2 \strokec5 ======== +\f0\b0 \strokec4 \ +\pard\pardeftab720\partightenfactor0 +\cf2 \strokec6 .. toctree::\strokec4 \ + \strokec6 :maxdepth:\strokec4 \strokec7 1\strokec4 \ +\ + gefest/index\ + components/index\ + contribution\ + faq\ + about\ +\ +\pard\pardeftab720\sa320\partightenfactor0 +\cf2 \cb8 \outl0\strokewidth0 **TEDEouS** (**T**\\orch **E**\\\cb1 \kerning1\expnd0\expndtw0 xhaustive **D**\\ifferential **E**\\quation **S**\\olver\cb8 \expnd0\expndtw0\kerning0 +)\ +Combines power of torch, numerical methods and math overall to conquer and solve ALL \{O,P\}DEs\cb1 \ +\cb8 There are some examples to provide a little insight to an operator form} \ No newline at end of file From 9e77f8791e80422e4c22dd6f737bd65aebc3a691 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:36:45 +0300 Subject: [PATCH 010/225] Update index.rst --- docs/source/index.rst | 50 +++++++++++-------------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 7f8633a1..7fdfb091 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,44 +1,20 @@ -{\rtf1\ansi\ansicpg1251\cocoartf2639 -\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 HelveticaNeue-Bold;} -{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue0;\red202\green202\blue202; -\red70\green137\blue204;\red183\green111\blue179;\red167\green197\blue152;\red255\green255\blue255;\red27\green31\blue35; -} -{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\csgray\c0\c0;\cssrgb\c83137\c83137\c83137; -\cssrgb\c33725\c61176\c83922;\cssrgb\c77255\c52549\c75294;\cssrgb\c70980\c80784\c65882;\cssrgb\c100000\c100000\c100000;\cssrgb\c14118\c16078\c18431; -} -\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 -\deftab720 -\pard\pardeftab720\partightenfactor0 +Welcome to TEDEouS documentation!\ +================================== +.. container:: -\f0\fs24 \cf2 \cb3 \expnd0\expndtw0\kerning0 -\outl0\strokewidth0 \strokec4 Welcome to TEDEouS documentation!\ -\pard\pardeftab720\partightenfactor0 + | There is contained main documentation for the \strokec5 `TEDEouS framework `__. -\f1\b \cf2 \strokec5 ================================== -\f0\b0 \strokec4 \ -\ -\pard\pardeftab720\partightenfactor0 -\cf2 \strokec6 .. container::\strokec4 \ -\ - | There is contained main documentation for the \strokec5 `TEDEouS framework `__\strokec4 .\ -\ -Content:\ -\pard\pardeftab720\partightenfactor0 +Content: +======== +.. toctree:: + :maxdepth: 1 -\f1\b \cf2 \strokec5 ======== -\f0\b0 \strokec4 \ -\pard\pardeftab720\partightenfactor0 -\cf2 \strokec6 .. toctree::\strokec4 \ - \strokec6 :maxdepth:\strokec4 \strokec7 1\strokec4 \ -\ - gefest/index\ + tedeous/index\ components/index\ contribution\ faq\ about\ -\ -\pard\pardeftab720\sa320\partightenfactor0 -\cf2 \cb8 \outl0\strokewidth0 **TEDEouS** (**T**\\orch **E**\\\cb1 \kerning1\expnd0\expndtw0 xhaustive **D**\\ifferential **E**\\quation **S**\\olver\cb8 \expnd0\expndtw0\kerning0 -)\ -Combines power of torch, numerical methods and math overall to conquer and solve ALL \{O,P\}DEs\cb1 \ -\cb8 There are some examples to provide a little insight to an operator form} \ No newline at end of file + +**TEDEouS** (**T**\orch **E**\xhaustive **D**\ifferential **E**\quation **S**\olver) +Combines power of torch, numerical methods and math overall to conquer and solve ALL {O,P}DEs. +There are some examples to provide a little insight to an operator form From f465d841cd4adff06a2ea5a1d2f1aab22ac17477 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:37:10 +0300 Subject: [PATCH 011/225] Update index.rst --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 7fdfb091..9191a212 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -2,7 +2,7 @@ Welcome to TEDEouS documentation!\ ================================== .. container:: - | There is contained main documentation for the \strokec5 `TEDEouS framework `__. + | There is contained main documentation for the `TEDEouS framework `__. Content: ======== From 892ec194a287fdcc08033e08fc7cae506f731387 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 14 Nov 2022 00:23:55 +0300 Subject: [PATCH 012/225] Update example_schrodinger.py --- examples/example_schrodinger.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index dd7e472c..0e1de56b 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -20,7 +20,7 @@ result = [] device = torch.device('cpu') res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10] +grd = [10, 20, 30, 40, 50] for n in grd: for i in range(10): @@ -209,7 +209,7 @@ torch.nn.Linear(100, 2) ) - equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') @@ -217,9 +217,9 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1, verbose=True, learning_rate=0.8, + model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=100,step_plot_save=True,image_save_dir=img_dir) + save_always=False,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) From d891645e9a86b68a6e417cc86f09ffc02b2dec23 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 13:13:46 +0300 Subject: [PATCH 013/225] Some docs stuff --- docs/source/Modules/cache.rst | 6 ++++++ docs/source/Modules/config.rst | 6 ++++++ docs/source/Modules/finite_diffs.rst | 6 ++++++ docs/source/Modules/input_preprocessing.rst | 6 ++++++ docs/source/Modules/metrics.rst | 5 +++++ docs/source/Modules/points_type.rst | 5 +++++ docs/source/Modules/solver.rst | 5 +++++ 7 files changed, 39 insertions(+) create mode 100644 docs/source/Modules/cache.rst create mode 100644 docs/source/Modules/config.rst create mode 100644 docs/source/Modules/finite_diffs.rst create mode 100644 docs/source/Modules/input_preprocessing.rst create mode 100644 docs/source/Modules/metrics.rst create mode 100644 docs/source/Modules/points_type.rst create mode 100644 docs/source/Modules/solver.rst diff --git a/docs/source/Modules/cache.rst b/docs/source/Modules/cache.rst new file mode 100644 index 00000000..76e2214c --- /dev/null +++ b/docs/source/Modules/cache.rst @@ -0,0 +1,6 @@ +Cache +===== + +..automodule:: cache + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst new file mode 100644 index 00000000..fc1411ca --- /dev/null +++ b/docs/source/Modules/config.rst @@ -0,0 +1,6 @@ +Config +====== + +..automodule:: config + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/finite_diffs.rst b/docs/source/Modules/finite_diffs.rst new file mode 100644 index 00000000..6f8396f4 --- /dev/null +++ b/docs/source/Modules/finite_diffs.rst @@ -0,0 +1,6 @@ +Finite difference method +======================== + +..automodule:: finite_diffs + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/input_preprocessing.rst b/docs/source/Modules/input_preprocessing.rst new file mode 100644 index 00000000..a7ecef95 --- /dev/null +++ b/docs/source/Modules/input_preprocessing.rst @@ -0,0 +1,6 @@ +Input preprocessing +=================== + +..automodule:: input_preprocessing + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/metrics.rst b/docs/source/Modules/metrics.rst new file mode 100644 index 00000000..0dbe90d7 --- /dev/null +++ b/docs/source/Modules/metrics.rst @@ -0,0 +1,5 @@ +Metrics +======= +..automodule:: metrics + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/points_type.rst b/docs/source/Modules/points_type.rst new file mode 100644 index 00000000..c0b93269 --- /dev/null +++ b/docs/source/Modules/points_type.rst @@ -0,0 +1,5 @@ +Points type + +..automodule:: points_type + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/solver.rst b/docs/source/Modules/solver.rst new file mode 100644 index 00000000..d0293b85 --- /dev/null +++ b/docs/source/Modules/solver.rst @@ -0,0 +1,5 @@ +Solver + +..automodule:: solver + :members: + :no-undoc-members: \ No newline at end of file From 670332c1c1fe243a1cf135e9b2733bf48fee0840 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 13:17:43 +0300 Subject: [PATCH 014/225] Update index.rst --- docs/source/index.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 9191a212..6bf54815 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,8 +10,9 @@ Content: :maxdepth: 1 tedeous/index\ - components/index\ - contribution\ + Install and setup\ + Modules/index\ + Examples\ faq\ about\ From f085b0efcf87d66f613a6b11e33fdb9fec441054 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 13:41:17 +0300 Subject: [PATCH 015/225] Update index.rst --- docs/source/index.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 6bf54815..b34c177e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,9 +10,8 @@ Content: :maxdepth: 1 tedeous/index\ - Install and setup\ Modules/index\ - Examples\ + examples\ faq\ about\ From 95ffc83ec064cb6fe84c5dd4847d94a033bb743e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 13:54:59 +0300 Subject: [PATCH 016/225] Some docs stuff --- docs/source/about.rst | 4 ++++ docs/source/faq.rst | 4 ++++ docs/source/tedeous/examples.rst | 4 ++++ docs/source/tedeous/guide.rst | 4 ++++ docs/source/tedeous/index.rst | 1 + docs/source/tedeous/install.rst | 4 ++++ 6 files changed, 21 insertions(+) create mode 100644 docs/source/about.rst create mode 100644 docs/source/faq.rst create mode 100644 docs/source/tedeous/examples.rst create mode 100644 docs/source/tedeous/guide.rst create mode 100644 docs/source/tedeous/index.rst create mode 100644 docs/source/tedeous/install.rst diff --git a/docs/source/about.rst b/docs/source/about.rst new file mode 100644 index 00000000..4ab632d9 --- /dev/null +++ b/docs/source/about.rst @@ -0,0 +1,4 @@ +About us +======== + +TBA... \ No newline at end of file diff --git a/docs/source/faq.rst b/docs/source/faq.rst new file mode 100644 index 00000000..d450539d --- /dev/null +++ b/docs/source/faq.rst @@ -0,0 +1,4 @@ +FAQ +=== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/examples.rst b/docs/source/tedeous/examples.rst new file mode 100644 index 00000000..88c00f17 --- /dev/null +++ b/docs/source/tedeous/examples.rst @@ -0,0 +1,4 @@ +Examples +======== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst new file mode 100644 index 00000000..76866f2a --- /dev/null +++ b/docs/source/tedeous/guide.rst @@ -0,0 +1,4 @@ +Quick guide +=========== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst new file mode 100644 index 00000000..4d972879 --- /dev/null +++ b/docs/source/tedeous/index.rst @@ -0,0 +1 @@ +**This is all about TEDEouS** \ No newline at end of file diff --git a/docs/source/tedeous/install.rst b/docs/source/tedeous/install.rst new file mode 100644 index 00000000..302c7700 --- /dev/null +++ b/docs/source/tedeous/install.rst @@ -0,0 +1,4 @@ +Install +======= + +TBA... \ No newline at end of file From 7b84df931682279e3b74beb6066225ab5b502dca Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 15:58:01 +0300 Subject: [PATCH 017/225] Update index.rst --- docs/source/index.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index b34c177e..441d07e8 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -11,7 +11,6 @@ Content: tedeous/index\ Modules/index\ - examples\ faq\ about\ From 96afeba33b210e5e5c6f6e0517ca6be83df048ca Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 16:43:11 +0300 Subject: [PATCH 018/225] Update index.rst --- docs/source/index.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 441d07e8..6f044312 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -9,10 +9,10 @@ Content: .. toctree:: :maxdepth: 1 - tedeous/index\ - Modules/index\ - faq\ - about\ + tedeous/index + Modules/index + faq + about **TEDEouS** (**T**\orch **E**\xhaustive **D**\ifferential **E**\quation **S**\olver) Combines power of torch, numerical methods and math overall to conquer and solve ALL {O,P}DEs. From fb2a2c4d93d78f5063eecea098c80309ce3b904e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 22:42:01 +0300 Subject: [PATCH 019/225] Create index.rst --- docs/source/modules/index.rst | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/source/modules/index.rst diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst new file mode 100644 index 00000000..becb3532 --- /dev/null +++ b/docs/source/modules/index.rst @@ -0,0 +1,4 @@ +Modules +======= + +This one contain everything about modules into TEDEouS \ No newline at end of file From daf3b11b20143d97d83b2823bdb2197cb0f48bab Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:45:27 +0300 Subject: [PATCH 020/225] Delete index.rst --- docs/source/modules/index.rst | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 docs/source/modules/index.rst diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst deleted file mode 100644 index becb3532..00000000 --- a/docs/source/modules/index.rst +++ /dev/null @@ -1,4 +0,0 @@ -Modules -======= - -This one contain everything about modules into TEDEouS \ No newline at end of file From 6c4fbde88e906714b092ea89ac442cd9ea022ff9 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:47:10 +0300 Subject: [PATCH 021/225] Update config.rst --- docs/source/Modules/config.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst index fc1411ca..80dbfe7d 100644 --- a/docs/source/Modules/config.rst +++ b/docs/source/Modules/config.rst @@ -1,6 +1,6 @@ Config ====== -..automodule:: config +.. automodule:: config :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 5d96cfbcc905d2ea5883f43c39f499e39af92d56 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:06 +0300 Subject: [PATCH 022/225] Delete cache.rst --- docs/source/Modules/cache.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/cache.rst diff --git a/docs/source/Modules/cache.rst b/docs/source/Modules/cache.rst deleted file mode 100644 index 76e2214c..00000000 --- a/docs/source/Modules/cache.rst +++ /dev/null @@ -1,6 +0,0 @@ -Cache -===== - -..automodule:: cache - :members: - :no-undoc-members: \ No newline at end of file From f2952fe0da000de1a79ce5ea0f515a2d41faf05f Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:23 +0300 Subject: [PATCH 023/225] Delete config.rst --- docs/source/Modules/config.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/config.rst diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst deleted file mode 100644 index 80dbfe7d..00000000 --- a/docs/source/Modules/config.rst +++ /dev/null @@ -1,6 +0,0 @@ -Config -====== - -.. automodule:: config - :members: - :no-undoc-members: From 1a143b5e1eb6c065d324f28c0cf1c9de60f66c4a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:31 +0300 Subject: [PATCH 024/225] Delete finite_diffs.rst --- docs/source/Modules/finite_diffs.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/finite_diffs.rst diff --git a/docs/source/Modules/finite_diffs.rst b/docs/source/Modules/finite_diffs.rst deleted file mode 100644 index 6f8396f4..00000000 --- a/docs/source/Modules/finite_diffs.rst +++ /dev/null @@ -1,6 +0,0 @@ -Finite difference method -======================== - -..automodule:: finite_diffs - :members: - :no-undoc-members: \ No newline at end of file From c2ca16bca3ee43c80b315ad686bc9a9307c142ca Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:37 +0300 Subject: [PATCH 025/225] Delete input_preprocessing.rst --- docs/source/Modules/input_preprocessing.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/input_preprocessing.rst diff --git a/docs/source/Modules/input_preprocessing.rst b/docs/source/Modules/input_preprocessing.rst deleted file mode 100644 index a7ecef95..00000000 --- a/docs/source/Modules/input_preprocessing.rst +++ /dev/null @@ -1,6 +0,0 @@ -Input preprocessing -=================== - -..automodule:: input_preprocessing - :members: - :no-undoc-members: \ No newline at end of file From 386b72e58e3414c718a5b51b41e2f6802be7cc6a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:43 +0300 Subject: [PATCH 026/225] Delete metrics.rst --- docs/source/Modules/metrics.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/metrics.rst diff --git a/docs/source/Modules/metrics.rst b/docs/source/Modules/metrics.rst deleted file mode 100644 index 0dbe90d7..00000000 --- a/docs/source/Modules/metrics.rst +++ /dev/null @@ -1,5 +0,0 @@ -Metrics -======= -..automodule:: metrics - :members: - :no-undoc-members: \ No newline at end of file From 0555d355454d75b99c47941d80efbad52720a5fd Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:49 +0300 Subject: [PATCH 027/225] Delete points_type.rst --- docs/source/Modules/points_type.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/points_type.rst diff --git a/docs/source/Modules/points_type.rst b/docs/source/Modules/points_type.rst deleted file mode 100644 index c0b93269..00000000 --- a/docs/source/Modules/points_type.rst +++ /dev/null @@ -1,5 +0,0 @@ -Points type - -..automodule:: points_type - :members: - :no-undoc-members: \ No newline at end of file From 1992df1a66c1c6d6973ee25b13a017dcb8632e8d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:55 +0300 Subject: [PATCH 028/225] Delete solver.rst --- docs/source/Modules/solver.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/solver.rst diff --git a/docs/source/Modules/solver.rst b/docs/source/Modules/solver.rst deleted file mode 100644 index d0293b85..00000000 --- a/docs/source/Modules/solver.rst +++ /dev/null @@ -1,5 +0,0 @@ -Solver - -..automodule:: solver - :members: - :no-undoc-members: \ No newline at end of file From ed61ea55613a9f858a4ee0c53b33538f16f0d353 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 22:51:32 +0300 Subject: [PATCH 029/225] docs stuff --- docs/source/modules/cache.rst | 6 ++++++ docs/source/modules/config.rst | 6 ++++++ docs/source/modules/finite_diffs.rst | 6 ++++++ docs/source/modules/index.rst | 4 ++++ docs/source/modules/input_preprocessing.rst | 6 ++++++ docs/source/modules/metrics.rst | 5 +++++ docs/source/modules/points_type.rst | 5 +++++ docs/source/modules/solver.rst | 5 +++++ 8 files changed, 43 insertions(+) create mode 100644 docs/source/modules/cache.rst create mode 100644 docs/source/modules/config.rst create mode 100644 docs/source/modules/finite_diffs.rst create mode 100644 docs/source/modules/index.rst create mode 100644 docs/source/modules/input_preprocessing.rst create mode 100644 docs/source/modules/metrics.rst create mode 100644 docs/source/modules/points_type.rst create mode 100644 docs/source/modules/solver.rst diff --git a/docs/source/modules/cache.rst b/docs/source/modules/cache.rst new file mode 100644 index 00000000..364566da --- /dev/null +++ b/docs/source/modules/cache.rst @@ -0,0 +1,6 @@ +Cache +===== + +.. automodule:: cache + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst new file mode 100644 index 00000000..67898cf2 --- /dev/null +++ b/docs/source/modules/config.rst @@ -0,0 +1,6 @@ +Config +====== + +.. automodule:: config + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/finite_diffs.rst b/docs/source/modules/finite_diffs.rst new file mode 100644 index 00000000..07f6d2f2 --- /dev/null +++ b/docs/source/modules/finite_diffs.rst @@ -0,0 +1,6 @@ +Finite difference method +======================== + +.. automodule:: finite_diffs + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst new file mode 100644 index 00000000..becb3532 --- /dev/null +++ b/docs/source/modules/index.rst @@ -0,0 +1,4 @@ +Modules +======= + +This one contain everything about modules into TEDEouS \ No newline at end of file diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst new file mode 100644 index 00000000..d15d4807 --- /dev/null +++ b/docs/source/modules/input_preprocessing.rst @@ -0,0 +1,6 @@ +Input preprocessing +=================== + +.. automodule:: input_preprocessing + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/metrics.rst b/docs/source/modules/metrics.rst new file mode 100644 index 00000000..1a9676b2 --- /dev/null +++ b/docs/source/modules/metrics.rst @@ -0,0 +1,5 @@ +Metrics +======= +.. automodule:: metrics + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst new file mode 100644 index 00000000..e48a461f --- /dev/null +++ b/docs/source/modules/points_type.rst @@ -0,0 +1,5 @@ +Points type + +.. automodule:: points_type + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst new file mode 100644 index 00000000..020ff92b --- /dev/null +++ b/docs/source/modules/solver.rst @@ -0,0 +1,5 @@ +Solver + +.. automodule:: solver + :members: + :no-undoc-members: \ No newline at end of file From b7cc0a6c4e03eadceed86da23d285b6a71be3d6f Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:58:07 +0300 Subject: [PATCH 030/225] Update index.rst --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 6f044312..25201969 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,7 +10,7 @@ Content: :maxdepth: 1 tedeous/index - Modules/index + modules/index faq about From c97a65904bed8b7dd9e21ca58120bc726d4f078e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 00:25:50 +0300 Subject: [PATCH 031/225] Update index.rst --- docs/source/tedeous/index.rst | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 4d972879..7b245ee5 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1 +1,9 @@ -**This is all about TEDEouS** \ No newline at end of file +**This is all about TEDEouS** + +.. toctree:: + :glob: + :maxdepth: 2 + + guide + install + examples From e45fb9fe6dc7e66669fb4e2cf9c2e04759eae756 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 00:27:32 +0300 Subject: [PATCH 032/225] Update index.rst --- docs/source/modules/index.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index becb3532..a593dc55 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -1,4 +1,16 @@ Modules ======= -This one contain everything about modules into TEDEouS \ No newline at end of file +This one contain everything about modules into TEDEouS + +.. toctree:: + :glob: + :maxdepth: 2 + + config + points_type + finite_diffs + input_preprocessing + metrics + cache + solver From 890ba2ed37da2a76f2778fadd6d81b9a3121b532 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:06:12 +0300 Subject: [PATCH 033/225] Update index.rst --- docs/source/tedeous/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 7b245ee5..622c816b 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1,3 +1,5 @@ +TEDEouS +======= **This is all about TEDEouS** .. toctree:: From cc9db3b4fb6acb6b2d212d344c3ab7dabca68fd4 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:27:47 +0300 Subject: [PATCH 034/225] Update points_type.rst --- docs/source/modules/points_type.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index e48a461f..2a85e07d 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -1,5 +1,10 @@ +=========== Points type +=========== + +Points type +~~~~~~~~~~~ .. automodule:: points_type :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 53e8e6fd82e679b7709cbd22ef980358c939933a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:28:24 +0300 Subject: [PATCH 035/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index d15d4807..9e53c27a 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -1,6 +1,10 @@ +=================== Input preprocessing =================== +Input preprocessing +~~~~~~~~~~~~~~~~~~~ + .. automodule:: input_preprocessing :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 006b0ab7106207ff632756047049a64a91347fa6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:50:01 +0300 Subject: [PATCH 036/225] Update faq.rst --- docs/source/faq.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index d450539d..fb48daa5 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -1,4 +1,8 @@ FAQ === -TBA... \ No newline at end of file +Frequently asked questions and answers + +.. topic:: What is TEDEouS? + *The TEDEous is а differential equations solver using machine learning methods* + From 52d3664c12284f272f4ee8625fff1cedbc7a37b2 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:50:48 +0300 Subject: [PATCH 037/225] Update faq.rst --- docs/source/faq.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index fb48daa5..18f9d6d3 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -4,5 +4,6 @@ FAQ Frequently asked questions and answers .. topic:: What is TEDEouS? + *The TEDEous is а differential equations solver using machine learning methods* From 0a993dbc68c5d3ba56bcb20eadb89507b642dbda Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:54:42 +0300 Subject: [PATCH 038/225] Update index.rst --- docs/source/tedeous/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 622c816b..16f2e42c 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1,5 +1,6 @@ TEDEouS ======= + **This is all about TEDEouS** .. toctree:: From 79d7e63353b9b334b56e4220caf6045b255d2a2e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:05:13 +0300 Subject: [PATCH 039/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 28 +++++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 9e53c27a..4774abed 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -2,9 +2,27 @@ Input preprocessing =================== -Input preprocessing -~~~~~~~~~~~~~~~~~~~ +class Equation +~~~~~~~~~~~~~~ +.. automodule:: input_preprocessing.Equation + +class Equation_mixin +~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_mixin + +class Equation_NN +~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_NN + +class Equation_mat +~~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_mat + +class Equation_autograd + +.. automodule:: input_preprocessing.Equation_autograd + -.. automodule:: input_preprocessing - :members: - :no-undoc-members: From 2db4156d16165103a4b1f5260983a623a48e8fc7 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:05:31 +0300 Subject: [PATCH 040/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 4774abed..638c1a51 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -22,6 +22,7 @@ class Equation_mat .. automodule:: input_preprocessing.Equation_mat class Equation_autograd +~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd From 6093edd0a2cd9a2f5de5efb4c3f8de305463ae19 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:14:48 +0300 Subject: [PATCH 041/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 27 ++++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 638c1a51..bc5bf358 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -5,25 +5,44 @@ Input preprocessing class Equation ~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation + :members: + :no-undoc-members: + -class Equation_mixin +class EquationMixin ~~~~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.Equation_mixin - +.. automodule:: input_preprocessing.EquationMixin + :members: + :no-undoc-members: + +class EquationInt +~~~~~~~~~~~~~~~~~ +.. automodule:: input_preprocessing.EquationInt + :members: + :no-undoc-members: + + class Equation_NN ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_NN + :members: + :no-undoc-members: + class Equation_mat ~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_mat + :members: + :no-undoc-members: + class Equation_autograd ~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd - + :members: + :no-undoc-members: From 9b7cc5d856110aee8f7bd7622fbb879d7cf26ef7 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:29:35 +0300 Subject: [PATCH 042/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 26 +++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index bc5bf358..74c2cfb1 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -4,45 +4,47 @@ Input preprocessing class Equation ~~~~~~~~~~~~~~ + .. automodule:: input_preprocessing.Equation - :members: - :no-undoc-members: + :members: + :no-undoc-members: class EquationMixin ~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.EquationMixin - :members: - :no-undoc-members: + :members: + :no-undoc-members: + class EquationInt ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.EquationInt - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_NN ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_NN - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_mat ~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_mat - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_autograd ~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd - :members: - :no-undoc-members: + :members: + :no-undoc-members: From b31cf2fe5bf1f5374c4cf3c998b4aa20f2bac982 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 18 Nov 2022 00:07:17 +0300 Subject: [PATCH 043/225] Docs fix --- cache.py | 18 +++--------- config.py | 64 ++++++++++++------------------------------ finite_diffs.py | 50 ++------------------------------- input_preprocessing.py | 6 ---- metrics.py | 17 +---------- points_type.py | 12 ++++---- test.ipynb | 63 +++++++++++++++++++++++++++++++++-------- 7 files changed, 82 insertions(+), 148 deletions(-) diff --git a/cache.py b/cache.py index 282ddd09..585277d9 100644 --- a/cache.py +++ b/cache.py @@ -1,9 +1,3 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Aug 24 11:50:12 2021 - -@author: user -""" import pickle import datetime import torch @@ -66,7 +60,6 @@ def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/' min_loss minimum error in pre-trained error - ''' files=glob.glob(cache_dir+'*.tar') # if files not found @@ -153,17 +146,14 @@ def save_model(self, prep_model: torch.nn.Sequential, state: dict, optimizer_sta 'optimizer_state_dict': optimizer_state}, cache_dir+name+'.tar') def save_model_mat(self, cache_dir: str = '../cache/', name: Union[str, None] = None, - cache_model: torch.nn.Sequential = None): + cache_model: torch.nn.Sequential = None) -> None: """ Saved model in a cache (uses for 'mat' method). Args: - cache_dir - a directory where saved cache in. - name - name for a model - cache_model - model to save + cache_dir: a directory where saved cache in. + name: name for a model + cache_model: model to save """ NN_grid=torch.from_numpy(np.vstack([self.grid[i].reshape(-1) for i in range(self.grid.shape[0])]).T).float() if cache_model==None: diff --git a/config.py b/config.py index a41e034d..d819daf7 100644 --- a/config.py +++ b/config.py @@ -1,12 +1,5 @@ -# -*- coding: utf-8 -*- -""" -Created on Sun Mar 13 14:13:37 2022 - -@author: Sashka -""" - from email.policy import default -from typing import Union +from typing import Union, Optional import json @@ -15,7 +8,6 @@ def read_config(name): config_data = json.load(config_file) return config_data - DEFAULT_CONFIG = """ { "Optimizer": { @@ -63,16 +55,11 @@ def check_module_name(module_name: str) -> bool: Check correctness of the 'first' level of config parameter name we call it module. - Parameters - ---------- - module_name: str - first level of a parameter of a custom config. - - Returns - ------- - module_correctness : bool - true if module presents in 'default' config. + Args: + module_name: first level of a parameter of a custom config. + Returns: + module_correctness: if module presents in 'default' config. """ if module_name in default_config.keys(): return True @@ -85,45 +72,32 @@ def check_param_name(module_name: str, param_name: str) -> bool: Check correctness of the 'first' level of config parameter name we call it module. - Parameters - ---------- - module_name: str - first level of a parameter of a custom config. - - Returns - ------- - module_correctness : bool - true if module presents in 'default' config. + Args: + module_name: first level of a parameter of a custom config. + param_name: specific parameter name. + Returns: + module_correctness: true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): return True else: return False - -''' -We can use old json load. However, it is good to check if the parameters named correctly -So, we make the full 'default' version of the config and load 'non-default' parameters -either from file or using method 'change_parameter' -''' - - class Config: - def __init__(self, *args): + def __init__(self: Union[str, Optional], *args): """ - We init config with default one + We initialize config with default one If there is passed path to a custom config, we try to load it and change default parameters Args: - config_path: str, optional - path to a custom config + config_path: path to a custom config Returns: - self: Config - config used in solver.optimization_solver function + self: config used in solver.optimization_solver function + """ self.params = default_config @@ -153,14 +127,12 @@ def set_parameter(self, parameter_string: str, value: Union[bool,float, int, Non We may want to just change default config parameters manually, without loading the .json - We run checks to see we set them corretly + We run checks to see we set them correctly Args: - parameter_string: - string in format 'module.parameter' + parameter_string: string in format 'module.parameter'. + value: value for the parameter. - value - value for the parameter """ module_name, param = parameter_string.split('.') diff --git a/finite_diffs.py b/finite_diffs.py index 60a83c46..cfcf7c89 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -24,35 +24,6 @@ def finite_diff_shift(diff: list, axis: int, mode: str) -> list: Returns: diff_list: list with shifted points. """ - - # """ - # we do the [0]->([1]-[-1])/(2h) transitions to the axes we need - # as an example d2u/dxdt - # u=[0,0] - # u-> du/dx: - # - # [0,0]->([1,0]-[-1,0])/(2h) - # - # du/dx->d2u/dxdt: - # - # [1,0]->([1,1]-[1,-1])/(2h*2tau) - # - # [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) - # - # But we do not want to take signs into account (too complex), so - # - # u-> du/dx: - # - # [0,0]->[[1,0],[-1,0]] - # - # du/dx->d2u/dxdt: - # - # [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] - # - # Since order is preserved we can compute signs afterwards - # - # """ - diff_p = copy(diff) diff_m = copy(diff) if mode == 'central': @@ -120,18 +91,6 @@ def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: Returns: sign_list: list, with signs for corresponding points. - """ - """ - From transformations above, we always start from +1 (1) - - Every +1 changes to ->[+1,-1] when order of differential rises - - [0,0] (+1) ->([1,0]-[-1,0]) ([+1,-1]) - - Every -1 changes to [-1,+1] - - [[1,0],[-1,0]] ([+1,-1])->[[1,1],[1,-1],[-1,1],[-1,-1]] ([+1,-1,-1,+1]) - """ sign_list = [1] for i in range(order): @@ -144,10 +103,6 @@ def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: sign_list = flatten_list(start_list) return sign_list - """ - The following functions are forward and backward schemes combined - """ - @staticmethod def second_order_shift(diff: list, axis: int, mode: str) -> list: """ @@ -184,10 +139,9 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[li varn: dimensionality of the problem. axes_mode: 'central' or combination of 'f' and 'b'. - Returns: - - finite_diff: transformed axes due to finite difference mode. - - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + finite_diff: transformed axes due to finite difference mode. + direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] diff --git a/input_preprocessing.py b/input_preprocessing.py index 8116008c..4affe84a 100644 --- a/input_preprocessing.py +++ b/input_preprocessing.py @@ -1,4 +1,3 @@ - import torch import numpy as np from typing import Union @@ -6,8 +5,6 @@ from points_type import Points_type from finite_diffs import Finite_diffs - - class EquationMixin(): """ Auxiliary class. This one contains some functions that uses in other classes. @@ -342,9 +339,6 @@ def operator_prepare(self) -> list: Returns: operator_list: final form of differential operator used in the algorithm for subset grid types. - - - """ grid_dict = self.grid_sort(self.grid) nvars = self.grid.shape[-1] diff --git a/metrics.py b/metrics.py index 4c7566be..4b549d99 100644 --- a/metrics.py +++ b/metrics.py @@ -78,7 +78,6 @@ def __init__(self, grid, model): Args: grid: array of a n-D points. model: neural network. - """ self.grid = grid self.model = model @@ -170,13 +169,9 @@ def derivative_1d(model: torch.Tensor, grid: torch.Tensor) -> torch.Tensor: du: computed derivative along one dimension. """ - # print('1d>2d') u = model.reshape(-1) x = grid.reshape(-1) - # du_forward = (u-torch.roll(u, -1)) / (x-torch.roll(x, -1)) - - # du_backward = (torch.roll(u, 1) - u) / (torch.roll(x, 1) - x) du = (torch.roll(u, 1) - torch.roll(u, -1)) / (torch.roll(x, 1) - torch.roll(x, -1)) du[0] = (u[0] - u[1]) / (x[0] - x[1]) du[-1] = (u[-1] - u[-2]) / (x[-1] - x[-2]) @@ -217,7 +212,6 @@ def derivative(u_tensor: torch.Tensor, h_tensor: torch.Tensor, axis: int, (torch.roll(h_tensor, 1) - h_tensor) du = (1 / 2) * (du_forward + du_backward) - # dh=h_tensor[0,1]-h_tensor[0,0] if scheme_order == 2: u_shift_down_1 = torch.roll(u_tensor, 1) @@ -533,16 +527,7 @@ def loss_evaluation(self, lambda_bound: int = 10) -> torch.Tensor: # we apply no boundary conditions operators if they are all None b_val, true_b_val = self.apply_bconds_operator() - """ - actually, we can use L2 norm for the operator and L1 for boundary - since L2>L1 and thus, boundary values become not so signifnicant, - so the NN converges faster. On the other hand - boundary conditions is the - crucial thing for all that stuff, so we should increase significance of the - coundary conditions - """ - # l1_lambda = 0.001 - # l1_norm =sum(p.abs().sum() for p in model.parameters()) - # loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2)+ l1_lambda * l1_norm + if self.mode == 'mat': loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2) else: diff --git a/points_type.py b/points_type.py index e8b545e7..09c548d6 100644 --- a/points_type.py +++ b/points_type.py @@ -20,8 +20,6 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: Returns: grid_shift: shifted array of a n-D points. - - """ grid_shift = grid.clone() grid_shift[:, axis] = grid[:, axis] + shift @@ -68,10 +66,10 @@ def point_typization(grid: torch.Tensor) -> dict: grid: array of a n-D points. Returns: - point_type: type with a points in a 'grid' above. Type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add - small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we - subtract small number from o a position of corresponding coordinate we stay in the 'hull'. + type with a points in a 'grid' above. Type may be 'central' - inner point + and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add + small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we + subtract small number from o a position of corresponding coordinate we stay in the 'hull'. """ direction_list = [] @@ -109,7 +107,7 @@ def grid_sort(grid: torch.Tensor) -> dict: Sorting grid points for each subset from result Points_type.point_typization. Args: - grid: tarray of a n-D points. + grid: array of a n-D points. Returns: grid_dict: sorted grid in each subset (see Points_type.point_typization). diff --git a/test.ipynb b/test.ipynb index 19bc6ee8..ea40f9c9 100644 --- a/test.ipynb +++ b/test.ipynb @@ -2,20 +2,11 @@ "cells": [ { "cell_type": "code", - "execution_count": 223, + "execution_count": 1, "metadata": { "collapsed": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "import numpy as np\n", "import torch\n", @@ -33,6 +24,36 @@ "%autoreload 2" ] }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [], + "source": [ + "import sys\n", + "import os" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 5, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", "execution_count": 228, @@ -44,6 +65,26 @@ "collapsed": false } }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [ + { + "data": { + "text/plain": "True" + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "torch.cuda.is_available()" + ], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", "execution_count": 229, From 4fa6ebbcba539dec3cfbe1b1cca222afc1c81eb1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 18 Nov 2022 15:11:48 +0300 Subject: [PATCH 044/225] Update project structure --- examples/example_KdV.py | 11 +++-------- examples/example_KdV_matrix.py | 10 ++++------ examples/example_Lotka_Volterra.py | 5 ++--- examples/example_ODE_Legendre.py | 6 ++---- examples/example_ODE_Legendre_autograd.py | 9 ++------- examples/example_ODE_Legendre_matrix.py | 9 ++------- examples/example_Painleve_I.py | 9 ++++----- examples/example_SODtest.py | 8 +++----- examples/example_SODtest_autograd.py | 8 +++----- examples/example_heat.py | 6 +++--- examples/example_schrodinger.py | 7 ++----- examples/example_wave_autograd.py | 5 ++--- examples/example_wave_paper.py | 6 +++--- examples/example_wave_paper_matrix.py | 8 ++++---- examples/example_wave_periodic.py | 11 ++++------- examples/old_config/example_EPDE_form.py | 13 ++----------- examples/old_config/example_KdV_config.py | 11 ++--------- .../example_ODE_Legendre_matrix_config.py | 12 ++++-------- examples/old_config/example_wave_config.py | 6 ++---- examples/to_renew/example_Painleve_II.py | 9 +-------- examples/to_renew/example_Painleve_III.py | 9 +-------- examples/to_renew/example_Painleve_IV.py | 9 +-------- examples/to_renew/example_Painleve_V.py | 9 +-------- examples/to_renew/example_Painleve_VI.py | 9 +-------- .../to_renew/example_wave_comparison_deepxde.py | 8 +------- .../example_wave_comparison_deepxde_matrix.py | 5 +---- cache.py => tedeous/cache.py | 4 ++-- config.py => tedeous/config.py | 0 finite_diffs.py => tedeous/finite_diffs.py | 0 .../input_preprocessing.py | 4 ++-- metrics.py => tedeous/metrics.py | 10 ++++------ points_type.py => tedeous/points_type.py | 0 solver.py => tedeous/solver.py | 7 +++---- 33 files changed, 71 insertions(+), 172 deletions(-) rename cache.py => tedeous/cache.py (99%) rename config.py => tedeous/config.py (100%) rename finite_diffs.py => tedeous/finite_diffs.py (100%) rename input_preprocessing.py => tedeous/input_preprocessing.py (99%) rename metrics.py => tedeous/metrics.py (98%) rename points_type.py => tedeous/points_type.py (100%) rename solver.py => tedeous/solver.py (98%) diff --git a/examples/example_KdV.py b/examples/example_KdV.py index 33af9b0c..997b5843 100644 --- a/examples/example_KdV.py +++ b/examples/example_KdV.py @@ -6,11 +6,6 @@ """ import torch import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -24,9 +19,9 @@ sys.path.append('../') -from solver import Solver -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation import time diff --git a/examples/example_KdV_matrix.py b/examples/example_KdV_matrix.py index cfe14509..365640b2 100644 --- a/examples/example_KdV_matrix.py +++ b/examples/example_KdV_matrix.py @@ -8,9 +8,7 @@ import numpy as np import torch import time -import pandas as pd -import matplotlib.pyplot as plt -from scipy.spatial import Delaunay + os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" import sys @@ -19,9 +17,9 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation +from tedeous.metrics import Solution diff --git a/examples/example_Lotka_Volterra.py b/examples/example_Lotka_Volterra.py index c3ac4973..1302f32c 100644 --- a/examples/example_Lotka_Volterra.py +++ b/examples/example_Lotka_Volterra.py @@ -11,7 +11,6 @@ import torch import numpy as np import matplotlib.pyplot as plt -import scipy from scipy import integrate import os @@ -22,8 +21,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver import time diff --git a/examples/example_ODE_Legendre.py b/examples/example_ODE_Legendre.py index 09b7ceec..07baca79 100644 --- a/examples/example_ODE_Legendre.py +++ b/examples/example_ODE_Legendre.py @@ -6,8 +6,6 @@ """ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import os import sys @@ -17,8 +15,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver from scipy.special import legendre import time diff --git a/examples/example_ODE_Legendre_autograd.py b/examples/example_ODE_Legendre_autograd.py index 46ae80fb..904899c3 100644 --- a/examples/example_ODE_Legendre_autograd.py +++ b/examples/example_ODE_Legendre_autograd.py @@ -7,10 +7,6 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D from scipy.special import legendre os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -23,9 +19,8 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver, grid_format_prepare -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_ODE_Legendre_matrix.py b/examples/example_ODE_Legendre_matrix.py index 26cf70d6..4dee7a18 100644 --- a/examples/example_ODE_Legendre_matrix.py +++ b/examples/example_ODE_Legendre_matrix.py @@ -7,10 +7,6 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D from scipy.special import legendre os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -22,9 +18,8 @@ sys.path.append('../') -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_Painleve_I.py b/examples/example_Painleve_I.py index 8e52f31f..96d08431 100644 --- a/examples/example_Painleve_I.py +++ b/examples/example_Painleve_I.py @@ -7,8 +7,7 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from scipy.spatial import Delaunay + os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" import sys @@ -17,9 +16,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_SODtest.py b/examples/example_SODtest.py index 447f4e2c..ac8a4374 100644 --- a/examples/example_SODtest.py +++ b/examples/example_SODtest.py @@ -4,9 +4,7 @@ import time import matplotlib.pyplot as plt from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from scipy.spatial import Delaunay + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys @@ -18,8 +16,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver device = torch.device('cpu') diff --git a/examples/example_SODtest_autograd.py b/examples/example_SODtest_autograd.py index dfa64248..ee6e6af8 100644 --- a/examples/example_SODtest_autograd.py +++ b/examples/example_SODtest_autograd.py @@ -4,17 +4,15 @@ import time import matplotlib.pyplot as plt from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from scipy.spatial import Delaunay + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation device = torch.device('cpu') diff --git a/examples/example_heat.py b/examples/example_heat.py index 9c1826dc..952f700b 100644 --- a/examples/example_heat.py +++ b/examples/example_heat.py @@ -16,9 +16,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 0e1de56b..6a5c3e26 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -1,7 +1,5 @@ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import pandas as pd import os @@ -13,9 +11,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation result = [] device = torch.device('cpu') diff --git a/examples/example_wave_autograd.py b/examples/example_wave_autograd.py index c80186b9..a9a0bce9 100644 --- a/examples/example_wave_autograd.py +++ b/examples/example_wave_autograd.py @@ -6,7 +6,6 @@ """ import numpy as np import torch -import matplotlib.pyplot as plt import sys import os @@ -20,8 +19,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver diff --git a/examples/example_wave_paper.py b/examples/example_wave_paper.py index fb1c61c8..95b46428 100644 --- a/examples/example_wave_paper.py +++ b/examples/example_wave_paper.py @@ -17,9 +17,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time """ diff --git a/examples/example_wave_paper_matrix.py b/examples/example_wave_paper_matrix.py index ac3b384a..6252dbc6 100644 --- a/examples/example_wave_paper_matrix.py +++ b/examples/example_wave_paper_matrix.py @@ -8,7 +8,7 @@ import numpy as np import os import time -import pandas as pd + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys @@ -18,9 +18,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation +from tedeous.metrics import Solution """ Preparing grid diff --git a/examples/example_wave_periodic.py b/examples/example_wave_periodic.py index 5c7428fb..d81b5b06 100644 --- a/examples/example_wave_periodic.py +++ b/examples/example_wave_periodic.py @@ -1,7 +1,5 @@ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import os @@ -13,12 +11,11 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation import time -device = torch.device('mps') +device = torch.device('cpu') # Grid x_grid = np.linspace(0,1,21) t_grid = np.linspace(0,1,21) @@ -116,7 +113,7 @@ model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-2, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every=500,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every=10,step_plot_print=False,step_plot_save=False,image_save_dir=img_dir) end = time.time() print('Time taken 10= ', end - start) \ No newline at end of file diff --git a/examples/old_config/example_EPDE_form.py b/examples/old_config/example_EPDE_form.py index ae3a2357..6ed4abb0 100644 --- a/examples/old_config/example_EPDE_form.py +++ b/examples/old_config/example_EPDE_form.py @@ -4,13 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -22,10 +15,8 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from config import Config -from solver import * -import time - +from tedeous.config import Config +from tedeous.solver import * t=np.array([0. , 0.00025, 0.0005 , 0.00075, 0.001 , 0.00125, 0.0015 , 0.00175, 0.002 , 0.00225, 0.0025 , 0.00275, 0.003 , 0.00325, diff --git a/examples/old_config/example_KdV_config.py b/examples/old_config/example_KdV_config.py index 5a23e10a..e07aa919 100644 --- a/examples/old_config/example_KdV_config.py +++ b/examples/old_config/example_KdV_config.py @@ -4,13 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -23,9 +16,9 @@ sys.path.append('../') -from solver import * +from tedeous.solver import * import time -from config import Config +from tedeous.config import Config diff --git a/examples/old_config/example_ODE_Legendre_matrix_config.py b/examples/old_config/example_ODE_Legendre_matrix_config.py index bdef3967..8e071460 100644 --- a/examples/old_config/example_ODE_Legendre_matrix_config.py +++ b/examples/old_config/example_ODE_Legendre_matrix_config.py @@ -17,17 +17,13 @@ sys.path.append('../') import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import lbfgs_solution,matrix_optimizer,grid_format_prepare +from tedeous.solver import grid_format_prepare import time from scipy.special import legendre -from solver import matrix_cache_lookup + device = torch.device('cpu') -from cache import save_model -from solver import optimization_solver -from config import Config +from tedeous.solver import optimization_solver +from tedeous.config import Config """ Preparing grid diff --git a/examples/old_config/example_wave_config.py b/examples/old_config/example_wave_config.py index e421a726..d34e9cdd 100644 --- a/examples/old_config/example_wave_config.py +++ b/examples/old_config/example_wave_config.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' @@ -16,9 +14,9 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from solver import * +from tedeous.solver import * # from cache import * -from config import Config +from tedeous.config import Config import time """ diff --git a/examples/to_renew/example_Painleve_II.py b/examples/to_renew/example_Painleve_II.py index f9e9477a..80751111 100644 --- a/examples/to_renew/example_Painleve_II.py +++ b/examples/to_renew/example_Painleve_II.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_III.py b/examples/to_renew/example_Painleve_III.py index 7997c49f..f7153fa6 100644 --- a/examples/to_renew/example_Painleve_III.py +++ b/examples/to_renew/example_Painleve_III.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_IV.py b/examples/to_renew/example_Painleve_IV.py index ac3908ef..7393e8c1 100644 --- a/examples/to_renew/example_Painleve_IV.py +++ b/examples/to_renew/example_Painleve_IV.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_V.py b/examples/to_renew/example_Painleve_V.py index ca12ca31..df93e738 100644 --- a/examples/to_renew/example_Painleve_V.py +++ b/examples/to_renew/example_Painleve_V.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_VI.py b/examples/to_renew/example_Painleve_VI.py index 274d65a0..caf20a79 100644 --- a/examples/to_renew/example_Painleve_VI.py +++ b/examples/to_renew/example_Painleve_VI.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_wave_comparison_deepxde.py b/examples/to_renew/example_wave_comparison_deepxde.py index 2a5414c1..4771d03e 100644 --- a/examples/to_renew/example_wave_comparison_deepxde.py +++ b/examples/to_renew/example_wave_comparison_deepxde.py @@ -4,10 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -import scipy import os @@ -19,9 +15,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -from solver import * -from cache import * +from tedeous.cache import * import time """ diff --git a/examples/to_renew/example_wave_comparison_deepxde_matrix.py b/examples/to_renew/example_wave_comparison_deepxde_matrix.py index 61675494..4ea474ee 100644 --- a/examples/to_renew/example_wave_comparison_deepxde_matrix.py +++ b/examples/to_renew/example_wave_comparison_deepxde_matrix.py @@ -4,11 +4,8 @@ @author: user """ -import torch -import numpy as np -import os -from solver import * +from tedeous.solver import * import time """ diff --git a/cache.py b/tedeous/cache.py similarity index 99% rename from cache.py rename to tedeous/cache.py index 585277d9..b961582e 100644 --- a/cache.py +++ b/tedeous/cache.py @@ -8,8 +8,8 @@ from torch import Tensor -from metrics import Solution -from input_preprocessing import Equation, EquationMixin +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation, EquationMixin class Model_prepare(Solution): """ diff --git a/config.py b/tedeous/config.py similarity index 100% rename from config.py rename to tedeous/config.py diff --git a/finite_diffs.py b/tedeous/finite_diffs.py similarity index 100% rename from finite_diffs.py rename to tedeous/finite_diffs.py diff --git a/input_preprocessing.py b/tedeous/input_preprocessing.py similarity index 99% rename from input_preprocessing.py rename to tedeous/input_preprocessing.py index 4affe84a..88a34f80 100644 --- a/input_preprocessing.py +++ b/tedeous/input_preprocessing.py @@ -2,8 +2,8 @@ import numpy as np from typing import Union -from points_type import Points_type -from finite_diffs import Finite_diffs +from tedeous.points_type import Points_type +from tedeous.finite_diffs import Finite_diffs class EquationMixin(): """ diff --git a/metrics.py b/tedeous/metrics.py similarity index 98% rename from metrics.py rename to tedeous/metrics.py index 4b549d99..5a87c4c2 100644 --- a/metrics.py +++ b/tedeous/metrics.py @@ -2,10 +2,8 @@ import numpy as np from typing import Union -from torch import Tensor - -import input_preprocessing -from points_type import Points_type +from tedeous import input_preprocessing +from tedeous import points_type flatten_list = lambda t: [item for sublist in t for item in sublist] @@ -365,7 +363,7 @@ def set_strategy(self, strategy: str) -> Union[Derivative_NN, Derivative_autogra class Solution(): def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, - input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], model: Union[torch.nn.Sequential, torch.Tensor], mode: str): """ Interface for computing loss due to chosen calculation method. @@ -439,7 +437,7 @@ def b_op_val_calc(self, bcond: list) -> torch.Tensor: btype = bcond[4] if bop == None or bop == [[1, [None], 1]]: if self.mode == 'NN': - grid_dict = Points_type.grid_sort(self.grid) + grid_dict = points_type.Points_type.grid_sort(self.grid) sorted_grid = torch.cat(list(grid_dict.values())) b_op_val = self.model(sorted_grid)[:, var].reshape(-1, 1) elif self.mode == 'autograd': diff --git a/points_type.py b/tedeous/points_type.py similarity index 100% rename from points_type.py rename to tedeous/points_type.py diff --git a/solver.py b/tedeous/solver.py similarity index 98% rename from solver.py rename to tedeous/solver.py index eacc22ca..e4e43e9b 100644 --- a/solver.py +++ b/tedeous/solver.py @@ -3,11 +3,10 @@ import matplotlib.pyplot as plt from matplotlib import cm -import input_preprocessing -from cache import Model_prepare +from tedeous import input_preprocessing +from tedeous.cache import Model_prepare from typing import Union import os -import sys import datetime @@ -54,7 +53,7 @@ class Solver(Model_prepare): High-level interface for solving equations. """ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, - input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], model: torch.nn.Sequential, mode: str): """ High-level interface for solving equations. From 11f61244dc1bb29e889b367f68285ba763d465c6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 16 Oct 2022 21:22:13 +0300 Subject: [PATCH 045/225] Some files + docs Added some docstrings and files for RTD --- docs/Makefile | 20 ++ docs/make.bat | 35 +++ docs/source/conf.py | 102 ++++++++ examples/example_schrodinger.py | 387 +++++++++++++++--------------- examples/example_wave_autograd.py | 2 +- examples/example_wave_periodic.py | 4 +- finite_diffs.py | 118 ++++++--- input_preprocessing.py | 226 +++++++++++------ points_type.py | 63 +++-- 9 files changed, 630 insertions(+), 327 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/make.bat create mode 100644 docs/source/conf.py diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..d0c3cbf1 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 00000000..6247f7e2 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 00000000..9eb4ba15 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,102 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# 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. +# +import os +import datetime +import sys +sys.path.insert(0, os.path.abspath('../..')) +from sphinx.builders.html import StandaloneHTMLBuilder + + +# -- Project information ----------------------------------------------------- + +project = 'TEDEouS' +copyright = '2021-{}, NSS Lab'.format(datetime.datetime.now().year) +author = 'NSS Lab' + +# The full version, including alpha/beta/rc tags +release = '0.0.1' +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx_rtd_theme', + 'sphinx.ext.autodoc', + 'sphinx.ext.coverage', + 'sphinx.ext.napoleon', + 'sphinx.ext.viewcode', + 'sphinx.ext.mathjax', + 'autodocsumm', + 'sphinx.ext.autosummary', + 'sphinx.ext.autodoc.typehints', + 'sphinx.ext.graphviz', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# 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 = [] + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +StandaloneHTMLBuilder.supported_image_types = [ + 'image/svg+xml', + 'image/gif', + 'image/png', + 'image/jpeg' +] +html_theme = "sphinx_rtd_theme" + +# 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". +# html_static_path = ['_static'] + + +# -- Extension configuration ------------------------------------------------- + +# autodoc_inherit_docstrings = False +# napoleon_google_docstring = True +# napoleon_include_init_with_doc = True +napoleon_google_docstring = True +napoleon_numpy_docstring = False +napoleon_include_init_with_doc = False +napoleon_include_private_with_doc = True +napoleon_include_special_with_doc = True +napoleon_use_admonition_for_examples = True +napoleon_use_admonition_for_notes = True +napoleon_use_admonition_for_references = False +napoleon_use_ivar = True +napoleon_use_keyword = True +napoleon_use_param = True +napoleon_use_rtype = True +napoleon_attr_annotations = False + +autodoc_default_options = { + 'members': True, + 'undoc-members': False, + 'show-inheritance': True, + 'member-order': 'bysource', + 'ignore-module-all': True, +} +autoclass_content = 'class' +autodoc_typehints = 'signature' +autodoc_typehints_format = 'short' +autodoc_mock_imports = ['objgraph', 'memory_profiler', 'gprof2dot', 'snakeviz'] diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 92f0d22d..b4459f92 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -2,9 +2,11 @@ import numpy as np import matplotlib.pyplot as plt import scipy +import pandas as pd import os import sys +import time os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' @@ -15,208 +17,207 @@ from cache import Model_prepare from input_preprocessing import Equation -device = torch.device("cpu") - -x_grid = np.linspace(-5,5,41) -t_grid = np.linspace(0,np.pi/2,41) - -x = torch.from_numpy(x_grid) -t = torch.from_numpy(t_grid) - -grid = torch.cartesian_prod(x, t).float() - -grid = grid.to(device) - -""" -To solve schrodinger equation we have to solve system because of its complexity. -Both for the operator and for boundary and initial conditions. -The system of boundary and initial conditions is written as follows: -bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) -etc... -For periodic bconds you need to set parameter bnd_type = 'periodic'. -For 'periodic' you don't need to set bnd_val. -In this case condition will be written as follows: -bnd1_left = ... -bnd1_right = ... -bnd1 = [bnd1_left, bnd1_right] -Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. -bnd_type is not necessary, default = 'boundary values'. -bnd, bnd_val are essentials for setting parameters bconds. -Eventually, whole list of bconds will be written: -bconds = [[bnd1,...,...], etc...] -""" -## BOUNDARY AND INITIAL CONDITIONS -fun = lambda x: 2/np.cosh(x) - -# u(x,0) = 2sech(x), v(x,0) = 0 -bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() -bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - - -# u(x,0) = 2sech(x) -bndval1_real = fun(bnd1_real[:,0]) - -# v(x,0) = 0 -bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) - - -# u(-5,t) = u(5,t) -bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_real = [bnd2_real_left,bnd2_real_right] - - -# v(-5,t) = v(5,t) -bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_imag = [bnd2_imag_left,bnd2_imag_right] - - -# du/dx (-5,t) = du/dx (5,t) -bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_real = [bnd3_real_left, bnd3_real_right] - +result = [] +# for n in range(10,60,10): +for n in range(10,11): + res_i = [] # model(grid)[i] + for i in range(10): + device = torch.device('mps') + + x_grid = np.linspace(-5,5,n+1) + t_grid = np.linspace(0,np.pi/2,n+1) + + x = torch.from_numpy(x_grid) + t = torch.from_numpy(t_grid) + + grid = torch.cartesian_prod(x, t).float() + + grid.to(device) + + """ + To solve schrodinger equation we have to solve system because of its complexity. + Both for the operator and for boundary and initial conditions. + The system of boundary and initial conditions is written as follows: + bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) + etc... + For periodic bconds you need to set parameter bnd_type = 'periodic'. + For 'periodic' you don't need to set bnd_val. + In this case condition will be written as follows: + bnd1_left = ... + bnd1_right = ... + bnd1 = [bnd1_left, bnd1_right] + Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. + bnd_type is not necessary, default = 'boundary values'. + bnd, bnd_val are essentials for setting parameters bconds. + Eventually, whole list of bconds will be written: + bconds = [[bnd1,...,...], etc...] + """ + ## BOUNDARY AND INITIAL CONDITIONS + fun = lambda x: 2/np.cosh(x) + + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + + + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) + + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + + + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] + + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + + + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] + + bop3_real = { + 'du/dx': + { + 'coeff': 1, + 'du/dx': [0], + 'pow': 1, + 'var': 0 + } + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + + bop3_imag = { + 'dv/dx': + { + 'coeff': 1, + 'dv/dx': [0], + 'pow': 1, + 'var': 1 + } + } -bop3_real = { - 'du/dx': + bcond_type = 'periodic' + + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] + + ''' + schrodinger equation: + i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 + real part: + du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v + imag part: + dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u + u = var:0 + v = var:1 + ''' + + schrodinger_eq_real = { + 'du/dt': { - 'coeff': 1, - 'du/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [1], + 'power': 1, 'var': 0 + }, + '1/2*d2v/dx2': + { + 'const': 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 1 + }, + 'v * u**2': + { + 'const': 1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [1, 0] + }, + 'v**3': + { + 'const': 1, + 'term': [None], + 'power': 3, + 'var': 1 } -} -# dv/dx (-5,t) = dv/dx (5,t) -bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_imag = [bnd3_imag_left,bnd3_imag_right] - -bop3_imag = { - 'dv/dx': + } + schrodinger_eq_imag = { + 'dv/dt': { - 'coeff': 1, - 'dv/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [1], + 'power': 1, 'var': 1 + }, + '-1/2*d2u/dx2': + { + 'const': - 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 0 + }, + '-u * v ** 2': + { + 'const': -1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [0, 1] + }, + '-u ** 3': + { + 'const': -1, + 'term': [None], + 'power': 3, + 'var': 0 } -} - - -bcond_type = 'periodic' - -bconds = [[bnd1_real, bndval1_real, 0], - [bnd1_imag, bndval1_imag, 1], - [bnd2_real, 0, bcond_type], - [bnd2_imag, 1, bcond_type], - [bnd3_real, bop3_real, bcond_type], - [bnd3_imag, bop3_imag, bcond_type]] - -''' -schrodinger equation: -i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 -real part: -du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v -imag part: -dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u -u = var:0 -v = var:1 -''' - -schrodinger_eq_real = { - 'du/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 0 - }, - '1/2*d2v/dx2': - { - 'const': 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 1 - }, - 'v * u**2': - { - 'const': 1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [1, 0] - }, - 'v**3': - { - 'const': 1, - 'term': [None], - 'power': 3, - 'var': 1 - } -} -schrodinger_eq_imag = { - 'dv/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 1 - }, - '-1/2*d2u/dx2': - { - 'const': - 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 0 - }, - '-u * v ** 2': - { - 'const': -1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [0, 1] - }, - '-u ** 3': - { - 'const': -1, - 'term': [None], - 'power': 3, - 'var': 0 } -} - -schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] - -model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) - - -equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') - -img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') - -if not(os.path.isdir(img_dir)): - os.mkdir(img_dir) - -model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=1, learning_rate=0.8, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=500,print_every = 100, optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) - - - + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + + model = torch.nn.Sequential( + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) + + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') + + img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') + + if not(os.path.isdir(img_dir)): + os.mkdir(img_dir) + + start = time.time() + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, + save_always=True,no_improvement_patience=500,print_every = 500,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + end = time.time() + print('Time taken {} = {}'.format(n, end - start)) + res_i.append(model(grid)) + result.append({'n': n, 'values': res_i, 'time': start - end}) +df = pd.DataFrame(result) +df.to_csv('benchmarking_data/example_schrodinger.csv') +# error_rmse = torch.sqrt(torch.mean(((grid)-model(grid))**2)) \ No newline at end of file diff --git a/examples/example_wave_autograd.py b/examples/example_wave_autograd.py index 33b76fe1..c80186b9 100644 --- a/examples/example_wave_autograd.py +++ b/examples/example_wave_autograd.py @@ -143,5 +143,5 @@ if not(os.path.isdir(img_dir)): os.mkdir(img_dir) -model=Solver(grid, equation, model, 'autograd').solve(use_cache=True,verbose=True,print_every=None,cache_verbose=True,abs_loss=0.001,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) +model=Solver(grid, equation, model, 'autograd').solve(use_cache=True,verbose=True,print_every=500,cache_verbose=True,abs_loss=0.001,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) diff --git a/examples/example_wave_periodic.py b/examples/example_wave_periodic.py index 22d1ab53..5c7428fb 100644 --- a/examples/example_wave_periodic.py +++ b/examples/example_wave_periodic.py @@ -18,7 +18,7 @@ from input_preprocessing import Equation import time -device = torch.device('cpu') +device = torch.device('mps') # Grid x_grid = np.linspace(0,1,21) t_grid = np.linspace(0,1,21) @@ -116,7 +116,7 @@ model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-2, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every=None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every=500,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken 10= ', end - start) \ No newline at end of file diff --git a/finite_diffs.py b/finite_diffs.py index 8aa8342e..8dc5150d 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -1,40 +1,62 @@ from copy import copy +from typing import Union flatten_list = lambda t: [item for sublist in t for item in sublist] class Finite_diffs(): + """ + Implements the Finite Difference method + """ # the idea is simple - central difference changes [0]->([1]-[-1])/(2h) (in terms of grid nodes position) @staticmethod - def finite_diff_shift(diff, axis, mode): - """ - we do the [0]->([1]-[-1])/(2h) transitions to the axes we need - as an example d2u/dxdt - u=[0,0] - u-> du/dx: - - [0,0]->([1,0]-[-1,0])/(2h) - - du/dx->d2u/dxdt: - - [1,0]->([1,1]-[1,-1])/(2h*2tau) - - [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) - - But we do not want to take signs into account (too complex), so - - u-> du/dx: - - [0,0]->[[1,0],[-1,0]] - - du/dx->d2u/dxdt: - - [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] - - Since order is preserved we can compute signs afterwards + def finite_diff_shift(diff, axis: int, mode: str) -> list: + """ 1st order shift + + Parameters + ---------- + diff + values of finite differences + axis + axis + mode + the finite difference type (i.e., forward, backward, central) + + Returns + ------- + diff_list + list with differences """ + # """ + # we do the [0]->([1]-[-1])/(2h) transitions to the axes we need + # as an example d2u/dxdt + # u=[0,0] + # u-> du/dx: + # + # [0,0]->([1,0]-[-1,0])/(2h) + # + # du/dx->d2u/dxdt: + # + # [1,0]->([1,1]-[1,-1])/(2h*2tau) + # + # [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) + # + # But we do not want to take signs into account (too complex), so + # + # u-> du/dx: + # + # [0,0]->[[1,0],[-1,0]] + # + # du/dx->d2u/dxdt: + # + # [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] + # + # Since order is preserved we can compute signs afterwards + # + # """ + diff_p = copy(diff) diff_m = copy(diff) if mode == 'central': @@ -47,7 +69,27 @@ def finite_diff_shift(diff, axis, mode): return [diff_p, diff_m] @staticmethod - def scheme_build(axes, varn, axes_mode): + def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : + """ + Building first order finite-difference stencil. + + Parameters + ---------- + axes + axes that transforms using FDM. (operator in conventional form) + varn + Dimensionality of the problem. + axes_mode + 'central' or combination of 'f' and 'b'. + + Returns + ------- + finite_diff + transformed axes due to finite difference method. + direction_list + list, which contains directions (i.e, 'central', 'f', 'b'). + + """ order = len(axes) finite_diff = [] direction_list = [] @@ -72,15 +114,31 @@ def scheme_build(axes, varn, axes_mode): # or add to the existing pool for diffs in f_diff: diff_list.append(diffs) - # the we go to the next differential if needed + # there we go to the next differential if needed finite_diff = diff_list direction_list.append(axes_mode[axes[i]]) return finite_diff, direction_list @staticmethod - def sign_order(order, mode, h=1 / 2): + def sign_order(order, mode: str, h = 1 / 2) -> list: + """ + Determines the sign of the derivative for the corresponding transformation from Finite_diffs.scheme_build() + + Parameters + ---------- + order: + order of differentiation. + mode: + calculation type of finite difference. + h: + + + Returns + ------- + + """ """ - From transormations above, we always start from +1 (1) + From transformations above, we always start from +1 (1) Every +1 changes to ->[+1,-1] when order of differential rises diff --git a/input_preprocessing.py b/input_preprocessing.py index 97aa5467..73496879 100644 --- a/input_preprocessing.py +++ b/input_preprocessing.py @@ -1,27 +1,29 @@ import torch import numpy as np - +from typing import Union from points_type import Points_type from finite_diffs import Finite_diffs class EquationMixin(): + """ + Auxiliary class. This one contains some functions that uses in other classes + """ @staticmethod - def operator_unify(operator): + def operator_unify(operator: list) -> list: """ - I just was annoyed adding additional square brackets to the operators. This one allows to make operator form simpler. Parameters ---------- operator : list - Operator in form ... . + operator in input form Returns ------- unified_operator : list - DESCRIPTION. + operator in unified form for preprocessing """ unified_operator = [] @@ -47,33 +49,53 @@ def operator_unify(operator): unified_operator.append([const, vars_set, power,variables]) else: unified_operator.append([const, [vars_set], [power],[variables]]) - # if type(power) is list: - # unified_operator.append([const, vars_set, power]) - # else: - # unified_operator.append([const, [vars_set], [power]]) return unified_operator @staticmethod - def op_dict_to_list(opdict): + def op_dict_to_list(opdict: dict) -> list: + """Transform operator in dict form to list + + Parameters + ---------- + opdict: dict + operator in dict form + + Returns + ------- + oplist: list + operator in list (input) form + + """ return list([list(term.values()) for term in opdict.values()]) @staticmethod - def closest_point(grid,target_point): - min_dist=np.inf - pos=0 - min_pos=0 + def closest_point(grid: torch.Tensor, target_point: float) -> int: + """Defines the closest boundary point to the grid. Auxiliary function. + Parameters + ---------- + grid + array of a n-D points + target_point + boundary point + Returns + ------- + min_pos + position of the boundary point on the grid + """ + min_dist = np.inf + pos = 0 + min_pos = 0 for point in grid: - dist=torch.linalg.norm(point-target_point) - if dist Union[list, int]: """ - Returns the position of the boundary points on the grid Parameters @@ -84,11 +106,11 @@ def bndpos(grid, bnd): boundary Returns ------- - bndposlist : list (int) - positions of boundaty points in grid + bndposlist + list of positions of the boundary points on the grid """ if grid.shape[0] == 1: - grid=grid.reshape(-1,1) + grid = grid.reshape(-1,1) grid = grid.double() def convert_to_double(bnd): @@ -128,7 +150,7 @@ def bnd_unify(bconds): Parameters ---------- bconds : list - + boundary in conventional form (see examples) Returns @@ -181,6 +203,8 @@ def bnd_prepare(self, value): class Equation_NN(EquationMixin, Points_type, Finite_diffs): + """Prepares equation, boundary conditions for NN method. + """ def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_order=2): self.grid = grid self.operator = operator @@ -189,7 +213,7 @@ def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_orde self.inner_order = inner_order self.boundary_order = boundary_order - def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type): + def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type) -> list: """ Function serves applying different schemes to a different point types for entire operator @@ -251,7 +275,7 @@ def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type): def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): """ - Axiluary function that converts integer grid steps in term described in + Auxiliary function that converts integer grid steps in term described in finite-difference scheme to a grids with shifted points, i.e. from field (x,y) -> (x,y+h). @@ -266,7 +290,7 @@ def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): Returns ------- s_grid_list : list - list, where the the steps and signs changed to grid and signs + list, where the steps and signs changed to grid and signs """ s_grid_list = [] for i, shifts in enumerate(finite_diff_scheme): @@ -288,12 +312,8 @@ def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): ---------- fin_diff_op : list operator_to_type_op result. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - true_grid : TYPE, optional - initial grid for coefficient in form of torch.Tensor mapping + grid_points : torch.Tensor + grid with sorted nodes. Returns ------- @@ -329,38 +349,34 @@ def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): return shift_grid_op - def apply_all_operators(self, unified_operator, grid_dict1): + def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: """ + Applies all transformations to operator. + Parameters ---------- - operator : list + unified_operator : list operator_unify result. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - subset : list, optional - grid subsets used for the operator ,e.g. ['central','fb','ff'] - true_grid : TYPE, optional - initial grid for coefficient in form of torch.Tensor mapping + grid_dict : dict + result Points_type.grid_sort Returns ------- operator_list : list final form of differential operator used in the algorithm for subset - grid types + grid types. """ operator_list = [] - nvars =list(grid_dict1.values())[0].shape[-1] - for operator_type in list(grid_dict1.keys()): + nvars = list(grid_dict.values())[0].shape[-1] + for operator_type in list(grid_dict.keys()): b = self.operator_to_type_op(unified_operator, nvars, operator_type) - c = self.type_op_to_grid_shift_op(b, grid_dict1[operator_type]) + c = self.type_op_to_grid_shift_op(b, grid_dict[operator_type]) operator_list.append(c) return operator_list - def operator_prepare(self): + def operator_prepare(self) -> list: """ Changes the operator in conventional form to the input one @@ -411,14 +427,13 @@ def bnd_prepare(self): bconds : list boundary in conventional form (see examples) grid : torch.Tensor - grid with sotred nodes (see grid_prepare) + grid with sorted nodes (see grid_prepare) h : float derivative precision parameter. The default is 0.001. Returns ------- - prepared_bnd : list - + prepared_bcond : list boundary in input form """ @@ -427,7 +442,7 @@ def bnd_prepare(self): bconds1 = self.bnd_unify(self.bconds) if bconds1==None: return None - prepared_bnd = [] + prepared_bcond = [] for bcond in bconds1: b_coord = bcond[0] bop = bcond[1] @@ -444,19 +459,37 @@ def bnd_prepare(self): bop2 = self.apply_all_operators(bop1, grid_dict) else: bop2 = None - prepared_bnd.append([bpos, bop2, bval, bvar, btype]) + prepared_bcond.append([bpos, bop2, bval, bvar, btype]) - return prepared_bnd + return prepared_bcond class Equation_autograd(EquationMixin): + """ Prepares equation for autograd method (i.e., from conventional form to input form). + """ def __init__(self, grid, operator, bconds): self.grid = grid self.operator = operator self.bconds = bconds @staticmethod - def expand_coeffs_autograd(unified_operator, grid): + def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: + """Prepares equation's coefficients for autograd method. + + Parameters + ---------- + unified_operator + result input_preprocessing.EquationMixin.operator_unify + grid + array of a n-D points + + Returns + ------- + autograd_op + prepared autograd operator + + + """ autograd_op=[] for term in unified_operator: coeff1 = term[0] @@ -467,7 +500,6 @@ def expand_coeffs_autograd(unified_operator, grid): coeff = coeff.reshape(-1,1) elif type(coeff1) == torch.Tensor: coeff = coeff1.reshape(-1,1) - prod = term[1] power = term[2] variables = term[3] @@ -499,33 +531,23 @@ def operator_prepare(self): if type(self.operator) == dict: op = self.op_dict_to_list(self.operator) unified_operator = self.operator_unify(op) - prepared_operator = [self.expand_coeffs_autograd(unified_operator, self.grid)] - return prepared_operator def bnd_prepare(self): """ - Parameters - ---------- - bconds : list - boundary in conventional form (see examples) - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. + Prepares boundary conditions from conventional form to input form Returns ------- - prepared_bnd : list - + prepared_bconds : list boundary in input form """ bconds = self.bnd_unify(self.bconds) if bconds==None: return None - prepared_bnd = [] + prepared_bconds = [] for bcond in bconds: b_coord = bcond[0] bop = bcond[1] @@ -541,23 +563,45 @@ def bnd_prepare(self): bop1 = self.operator_unify(bop) else: bop1 = None - prepared_bnd.append([bpos, bop1, bval, var, btype]) - return prepared_bnd + prepared_bconds.append([bpos, bop1, bval, var, btype]) + return prepared_bconds class Equation_mat(EquationMixin): + """ + Prepares equation for matrix optimization method (i.e., from conventional form to input form). + """ def __init__(self, grid, operator, bconds): self.grid = grid self.operator = operator self.bconds = bconds - def operator_prepare(self): + def operator_prepare(self) -> list: + """ + Prepares operator from conventional form to input form + + Returns + ------- + prepared_operator + final form of differential operator used in the algorithm + + + """ if type(self.operator) == dict: operator_list = self.op_dict_to_list(self.operator) unified_operator = self.operator_unify(operator_list) return [unified_operator] - def bnd_prepare(self): + def bnd_prepare(self) -> list: + """ + Prepares boundary conditions from conventional form to input form + + Returns + ------- + prepared_bconds + final form of boundary conditions used in the algorithm + + """ prepared_bconds=[] bconds = self.bnd_unify(self.bconds) for bnd in bconds: @@ -566,8 +610,7 @@ def bnd_prepare(self): bval=bnd[2] var = bnd[3] btype = bnd[4] - bpos=[] - # bpos=bndpos(grid,bpts) + bpos = [] for pt in bpts: if self.grid.shape[0]==1: point_pos=(torch.tensor(self.bndpos(self.grid,pt)),) @@ -587,14 +630,41 @@ def bnd_prepare(self): class Equation(): - def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_order=2): + def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, h = 0.001, inner_order = 1, boundary_order = 2): + """ + + Parameters + ---------- + grid + + operator + + bconds + h + inner_order + boundary_order + """ self.grid = grid self.operator = operator self.bconds = bconds self.h = h self.inner_order = inner_order self.boundary_order = boundary_order - def set_strategy(self, strategy): + def set_strategy(self, strategy: str) -> Union[Equation_NN, Equation_mat, Equation_autograd]: + """Setting the calculation method. + + Parameters + ---------- + strategy: str + Calculation method. (i.e., "NN", "autograd", "mat") + + Returns + ------- + chosen_method : + A given calculation method + + + """ if strategy == 'NN': return Equation_NN(self.grid, self.operator, self.bconds, h=self.h, inner_order=self.inner_order, boundary_order=self.boundary_order) if strategy == 'mat': diff --git a/points_type.py b/points_type.py index 3ca9f2b0..a17b4e79 100644 --- a/points_type.py +++ b/points_type.py @@ -4,26 +4,51 @@ class Points_type(): - + """ + Discretizing the grid and allocating subsets for Finite Difference method. + """ @staticmethod - def shift_points(grid, axis, shift): - """ - Shifts all values of an array 'grid' on a value 'shift' in a direcion of + def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: + """Shifts all values of an array 'grid' on a value 'shift' in a direcion of axis 'axis', somewhat is equivalent to a np.roll + Parameters + ---------- + grid: torch.Tensor (torch.float64) + array of a n-D points + axis:int + axis to which the shift is applied + shift: float + shift value + + Returns + ------- + grid_shift: torch.Tensor (torch.float64) + shifted array of a n-D points + """ grid_shift = grid.clone() grid_shift[:, axis] = grid[:, axis] + shift return grid_shift @staticmethod - def in_hull(p, hull): - """ - Test if points in `p` are in `hull` + def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: + """Test if points in `p` are in `hull` `p` should be a `NxK` coordinates of `N` points in `K` dimensions `hull` is either a scipy.spatial.Delaunay object or the `MxK` array of the coordinates of `M` points in `K`dimensions for which Delaunay triangulation will be computed + + Parameters + ---------- + p: torch.Tensor (torch.float64) + shifted array of a n-D points + hull: + initial array of a n-D points + Returns + ------- + in_hull_array: + array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. """ if p.shape[1] > 1: if not isinstance(hull, Delaunay): @@ -40,9 +65,8 @@ def in_hull(p, hull): return np.array(((p <= upbound) & (p >= lowbound)).reshape(-1)) @staticmethod - def point_typization(grid): - """ - + def point_typization(grid:torch.Tensor) -> dict: + """Allocating subsets for FD (i.e., 'f', 'b', 'central'). Parameters ---------- @@ -91,27 +115,20 @@ def point_typization(grid): return point_type @staticmethod - def grid_sort(grid): + def grid_sort(grid: torch.Tensor) -> dict: """ - + Sorting grid points for each subset Parameters ---------- - point_type : dict - dictionary point:type with a points in a 'grid' above - type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string - is a dimension n - 'f' means that if we add small number to a position of corresponding - coordinate we stay in the 'hull' - 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull' + grid : torch.Tensor (torch.float64) + array of a n-D points + Returns ------- grid_dict : dict - dictionart type:points list - basically reversed dictionaty + sorted grid in each subset (see Points_type.point_typization) """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) From 015cc9de51196823841f1ede5900ab971484dd7c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 16 Oct 2022 21:41:08 +0300 Subject: [PATCH 046/225] Some stuff --- .readthedocs | 16 ++++++++++++++++ requirements.txt | 7 +++++++ 2 files changed, 23 insertions(+) create mode 100644 .readthedocs create mode 100644 requirements.txt diff --git a/.readthedocs b/.readthedocs new file mode 100644 index 00000000..9794ec9d --- /dev/null +++ b/.readthedocs @@ -0,0 +1,16 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/source/conf.py + + +python: + version: 3.9 + install: + - requirements: requirements.txt \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..8614a2ba --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +matplotlib==3.6.1 +numpy==1.23.4 +pandas==1.5.0 +scipy==1.9.2 +seaborn==0.12.0 +torch==1.12.1 +autodocsumm From 7dc779d6327616a8c880ec1962fbbe3dcf443049 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 16 Oct 2022 21:43:16 +0300 Subject: [PATCH 047/225] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8614a2ba..9efc5f39 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -matplotlib==3.6.1 +matplotlib==3.6.0 numpy==1.23.4 pandas==1.5.0 scipy==1.9.2 From e488f3cf402cb09a8b40a67e499f304207adc903 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 16 Oct 2022 21:49:08 +0300 Subject: [PATCH 048/225] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9efc5f39..6af3841d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -matplotlib==3.6.0 +matplotlib==3.6.0; python_version == '3.9' numpy==1.23.4 pandas==1.5.0 scipy==1.9.2 From ee9d1b2ecc75c264be91385adcf13a98a6112066 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 19 Oct 2022 16:24:55 +0300 Subject: [PATCH 049/225] Upd Schrodinger. Added some stuff for paper. --- cache.py | 153 +++++++++++++++++++++++++++++--- config.py | 105 ++++++++++------------ examples/example_schrodinger.py | 34 ++++--- 3 files changed, 209 insertions(+), 83 deletions(-) diff --git a/cache.py b/cache.py index 51961942..059827dd 100644 --- a/cache.py +++ b/cache.py @@ -10,17 +10,36 @@ import os import glob import numpy as np +from typing import Union from metrics import Solution from input_preprocessing import Equation, EquationMixin class Model_prepare(Solution): + """ + Prepares initial model. Serves for computing acceleration.\n + Saves the trained model to the cache, and subsequently it is possible to use pre-trained model (if \\\ + it saved and if the new model is structurally similar) to sped up computing.\n + If there isn't pre-trained model in cache, the training process will start from the beginning. + """ def __init__(self, grid, equal_cls, model, mode): super().__init__(grid, equal_cls, model, mode) self.equal_cls = equal_cls @staticmethod - def create_random_fn(eps): + def create_random_fn(eps: Union[int,float]): + """ + Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + + Parameters + ---------- + eps: + randomize parameter + + Returns + ------- + + """ def randomize_params(m): if type(m)==torch.nn.Linear or type(m)==torch.nn.Conv2d: m.weight.data=m.weight.data+(2*torch.randn(m.weight.size())-1)*eps#Random weight initialisation @@ -28,8 +47,30 @@ def randomize_params(m): return randomize_params - def cache_lookup(self, lambda_bound=0.001, weak_form=None, cache_dir='../cache/', nmodels=None, cache_verbose=False): - + def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', + nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: + ''' + Looking for a saved cache. + + Parameters + ---------- + lambda_bound: float + an arbitrary chosen constant, influence only convergence speed. + cache_dir: str + directory where saved cache in. + nmodels: + ? + cache_verbose: bool + more detailed info about models in cache. + + Returns + ------- + best_checkpoint + + min_loss + minimum error in pre-trained error + + ''' files=glob.glob(cache_dir+'*.tar') # if files not found if len(files)==0: @@ -78,7 +119,7 @@ def cache_lookup(self, lambda_bound=0.001, weak_form=None, cache_dir='../cache/' continue # model[0] = torch.nn.Linear(prepared_grid.shape[-1], model[0].out_features) # model.eval() - l=self.loss_evaluation(lambda_bound=lambda_bound, weak_form=weak_form) + l=self.loss_evaluation(lambda_bound=lambda_bound) if l Union[torch.nn.Sequential, dict]: + """ + ??? + + Parameters + ---------- + trained_model + ??? + cache_verbose: + more detailed info about models in cache. + + Returns + ------- + model + optimizer.state_dict + + """ optimizer = torch.optim.Adam(self.model.parameters(), lr=0.001) loss = torch.mean(torch.square(trained_model(self.grid)-self.model(self.grid))) @@ -153,11 +240,27 @@ def closure(): return self.model, optimizer.state_dict() - def cache_retrain(self, cache_checkpoint, cache_verbose=False): + def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + """ + ??? + + Parameters + ---------- + cache_checkpoint + ??? + cache_verbose + more detailed info about models in cache. + + Returns + ------- + model + optimizer_state + """ # do nothing if cache is empty if cache_checkpoint==None: optimizer_state = None return self.model,optimizer_state + # if models have the same structure use the cache model state if str(cache_checkpoint['model']) == str(self.model): self.model = cache_checkpoint['model'] @@ -176,14 +279,38 @@ def cache_retrain(self, cache_checkpoint, cache_verbose=False): self.model, optimizer_state = self.scheme_interp(cache_model, cache_verbose=cache_verbose) return self.model, optimizer_state - def cache(self, cache_dir, nmodels, lambda_bound, cache_verbose, model_randomize_parameter, cache_model, weak_form=None): - r =self.create_random_fn(model_randomize_parameter) + def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, + cache_verbose: bool,model_randomize_parameter: Union[float, None], + cache_model: torch.nn.Sequential) -> Union[torch.nn.Sequential, torch.Tensor]: + """ + Restores the model from the cache and uses it for retraining. + + Parameters + ---------- + cache_dir + a directory where saved cache in. + nmodels + ??? + lambda_bound + an arbitrary chosen constant, influence only convergence speed. + cache_verbose + more detailed info about models in cache. + model_randomize_parameter + Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + cache_model + cached model + + Returns + ------- + model + min_loss + + """ + r = self.create_random_fn(model_randomize_parameter) if self.mode == 'NN' or self.mode == 'autograd': - cache_checkpoint, min_loss=self.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound, weak_form=weak_form) + cache_checkpoint, min_loss=self.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound) self.model, optimizer_state = self.cache_retrain(cache_checkpoint, cache_verbose=cache_verbose) - self.model.apply(r) - return self.model, min_loss elif self.mode == 'mat': diff --git a/config.py b/config.py index c66faf10..9c185cf8 100644 --- a/config.py +++ b/config.py @@ -6,15 +6,17 @@ """ from email.policy import default +from typing import Union import json + def read_config(name): with open(name, 'r') as config_file: config_data = json.load(config_file) return config_data -DEFAULT_CONFIG=""" +DEFAULT_CONFIG = """ { "Optimizer": { "learning_rate":1e-4, @@ -55,47 +57,43 @@ def read_config(name): default_config = json.loads(DEFAULT_CONFIG) -def check_module_name(module_name:str) -> bool: + +def check_module_name(module_name: str) -> bool: """ - check correctness of the 'first' level of config parameter name - we call it module + Check correctness of the 'first' level of config parameter name + we call it module. Parameters ---------- module_name: str - - first level of a parameter of a custom config + first level of a parameter of a custom config. Returns ------- module_correctness : bool - - true if module presents in 'default' config + true if module presents in 'default' config. """ if module_name in default_config.keys(): return True else: return False - -def check_param_name(module_name:str, param_name:str) -> bool: +def check_param_name(module_name: str, param_name: str) -> bool: """ - check correctness of the 'first' level of config parameter name - we call it module + Check correctness of the 'first' level of config parameter name + we call it module. Parameters ---------- module_name: str - - first level of a parameter of a custom config + first level of a parameter of a custom config. Returns ------- module_correctness : bool - - true if module presents in 'default' config + true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): @@ -103,84 +101,77 @@ def check_param_name(module_name:str, param_name:str) -> bool: else: return False + ''' We can use old json load. However, it is good to check if the parameters named correctly So, we make the full 'default' version of the config and load 'non-default' parameters either from file or using method 'change_parameter' ''' + + class Config: def __init__(self, *args): - ''' + """ We init config with default one - If there is passed path to a custon config, we try to load it and change + If there is passed path to a custom config, we try to load it and change default parameters - Parameters ---------- config_path: str, optional - path to a custom config Returns ------- - self: Config - + self: Config config used in solver.optimization_solver function - ''' - + """ - - self.params=default_config - if len(args)==1: + self.params = default_config + if len(args) == 1: try: - custom_config=read_config(args[0]) + custom_config = read_config(args[0]) except Exception: print('Error reading config. Default config assumed.') - custom_config=default_config + custom_config = default_config for module_name in custom_config.keys(): if check_module_name(module_name): for param in custom_config[module_name].keys(): - if check_param_name(module_name,param): - self.params[module_name][param]=custom_config[module_name][param] + if check_param_name(module_name, param): + self.params[module_name][param] = custom_config[module_name][param] else: - print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name,param)) - else: - print('Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) + print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format( + module_name, param)) + else: + print( + 'Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) - elif len(args)>1: + elif len(args) > 1: print('Too much initialization args, using default config') - - - - def set_parameter(self,parameter_string:str,value): - ''' - We may want to just change defalut condfig parameters manually, without loading + + def set_parameter(self, parameter_string: str, value: Union[bool,float, int, None]): + """ + We may want to just change default config parameters manually, without loading the .json We run checks to see we set them corretly - Parameters ---------- - parameter_string: str - - string in format 'module.parameter' + parameter_string: + string in format 'module.parameter' - value: bool,float, int, None + value + value for the parameter + """ - value for the parameter - ''' - - module_name,param=parameter_string.split('.') + module_name, param = parameter_string.split('.') if check_module_name(module_name): - if check_param_name(module_name,param): - self.params[module_name][param]=value + if check_param_name(module_name, param): + self.params[module_name][param] = value else: - print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name,param)) - else: + print( + 'Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name, param)) + else: print('Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) - - - diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index b4459f92..89ed3c8a 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -18,11 +18,10 @@ from input_preprocessing import Equation result = [] -# for n in range(10,60,10): -for n in range(10,11): - res_i = [] # model(grid)[i] +device = torch.device('cpu') +res_i = {"n_iter": [], "grid": [], "u": [], "v": []} +for n in range(10,60,10): for i in range(10): - device = torch.device('mps') x_grid = np.linspace(-5,5,n+1) t_grid = np.linspace(0,np.pi/2,n+1) @@ -211,13 +210,22 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = 500,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=True, learning_rate=1e-3, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, + save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() - print('Time taken {} = {}'.format(n, end - start)) - res_i.append(model(grid)) - result.append({'n': n, 'values': res_i, 'time': start - end}) -df = pd.DataFrame(result) -df.to_csv('benchmarking_data/example_schrodinger.csv') -# error_rmse = torch.sqrt(torch.mean(((grid)-model(grid))**2)) \ No newline at end of file + print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) + + val = model(grid).detach().numpy() + u = val[0:,0] + v = val[0:,1] + n_iter = [i for j in range(len(u))] + N = [n for j in range(len(u))] + res_i['n_iter'].extend(n_iter) + res_i['grid'].extend(N) + res_i['v'].extend(v) + res_i['u'].extend(u) + result.extend(res_i) + +df = pd.DataFrame(res_i) +df.to_csv('benchmarking_data/schrodinger_experiment_10_50_cache=False.csv',index=False) \ No newline at end of file From e70ccb07ef3ae94cc10049c96a57914a92b6cc7c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 31 Oct 2022 15:26:41 +0300 Subject: [PATCH 050/225] Some docstrings. Added docstrings and schrodinger example fixed for paper. --- .../benchmarking_data/schrodinger_test.mat | Bin 0 -> 559592 bytes examples/example_schrodinger.py | 9 +- finite_diffs.py | 131 +++--- input_preprocessing.py | 370 ++++++++-------- points_type.py | 39 +- solver.py | 348 ++++++++++----- test.ipynb | 401 ++++++++++++++++++ 7 files changed, 931 insertions(+), 367 deletions(-) create mode 100644 examples/benchmarking_data/schrodinger_test.mat create mode 100644 test.ipynb diff --git a/examples/benchmarking_data/schrodinger_test.mat b/examples/benchmarking_data/schrodinger_test.mat new file mode 100644 index 0000000000000000000000000000000000000000..3767e62244fa80b74f1c415bd671d93296ca6d5e GIT binary patch literal 559592 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%0AGl3zfWp#a*DXJc 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

P+CZ=JK0t{H&z1dW)-5raTI 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 Sqrq`zoMW9^qv?N9{7^cnbA1p1 literal 0 HcmV?d00001 diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 89ed3c8a..3cd3e65e 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -19,8 +19,9 @@ result = [] device = torch.device('cpu') -res_i = {"n_iter": [], "grid": [], "u": [], "v": []} -for n in range(10,60,10): +res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} +grd = [10, 20, 30, 40] +for n in grd: for i in range(10): x_grid = np.linspace(-5,5,n+1) @@ -221,11 +222,13 @@ v = val[0:,1] n_iter = [i for j in range(len(u))] N = [n for j in range(len(u))] + time_iter = [end - start for i in range(len(u))] res_i['n_iter'].extend(n_iter) res_i['grid'].extend(N) res_i['v'].extend(v) res_i['u'].extend(u) + res_i['time'].extend(time_iter) result.extend(res_i) df = pd.DataFrame(res_i) -df.to_csv('benchmarking_data/schrodinger_experiment_10_50_cache=False.csv',index=False) \ No newline at end of file +df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file diff --git a/finite_diffs.py b/finite_diffs.py index 8dc5150d..682b6460 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -1,31 +1,28 @@ from copy import copy -from typing import Union +from typing import Union, List, Tuple flatten_list = lambda t: [item for sublist in t for item in sublist] class Finite_diffs(): """ - Implements the Finite Difference method + Implements the Finite Difference method for a given operator. \n + `finite_diff_shift`, `scheme_build`, `sign_order` implement 1st order (in terms of accuracy) finite difference. \n + `second_order_shift`, `second_order_scheme_build`, `second_order_sign_order` implement respectively 2nd order (in terms of accuracy) finite difference. """ # the idea is simple - central difference changes [0]->([1]-[-1])/(2h) (in terms of grid nodes position) @staticmethod - def finite_diff_shift(diff, axis: int, mode: str) -> list: - """ 1st order shift - - Parameters - ---------- - diff - values of finite differences - axis - axis - mode - the finite difference type (i.e., forward, backward, central) - - Returns - ------- - diff_list - list with differences + def finite_diff_shift(diff: list, axis: int, mode: str) -> list: + """ + 1st order points shift for the corresponding finite difference mode. + + Args: + diff: values of finite differences. + axis: axis. + mode: the finite difference mode (i.e., forward, backward, central). + + Returns: + diff_list: list with shifted points """ @@ -69,25 +66,20 @@ def finite_diff_shift(diff, axis: int, mode: str) -> list: return [diff_p, diff_m] @staticmethod - def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : + def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: """ - Building first order finite-difference stencil. - - Parameters - ---------- - axes - axes that transforms using FDM. (operator in conventional form) - varn - Dimensionality of the problem. - axes_mode - 'central' or combination of 'f' and 'b'. - - Returns - ------- - finite_diff - transformed axes due to finite difference method. - direction_list - list, which contains directions (i.e, 'central', 'f', 'b'). + Building first order (in terms of accuracy) finite-difference stencil. + + Args: + axes: axes that transforms using FDM. (operator in conventional form) + varn: Dimensionality of the problem. + axes_mode: 'central' or combination of 'f' and 'b'. + + + Returns: + - finite_diff: transformed axes due to finite difference mode. + - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + """ order = len(axes) @@ -120,21 +112,17 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : return finite_diff, direction_list @staticmethod - def sign_order(order, mode: str, h = 1 / 2) -> list: + def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: """ Determines the sign of the derivative for the corresponding transformation from Finite_diffs.scheme_build() - Parameters - ---------- - order: - order of differentiation. - mode: - calculation type of finite difference. - h: + Args: + order: order of differentiation. + mode: calculation type of finite difference. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). - - Returns - ------- + Returns: + sign_list: list, with signs for corresponding points. """ """ @@ -159,12 +147,25 @@ def sign_order(order, mode: str, h = 1 / 2) -> list: start_list.append([sign / h, -sign / h]) sign_list = flatten_list(start_list) return sign_list + """ The following functions are forward and backward schemes combined """ @staticmethod - def second_order_shift(diff, axis, mode): + def second_order_shift(diff: list, axis: int, mode: str) -> list: + """ + 2nd order points shift for the corresponding finite difference mode. + + Args: + diff: values of finite differences. + axis: axis. + mode: the finite difference mode (i.e., forward, backward, central). + + Returns: + diff_list: list with shifted points. + + """ diff_1 = copy(diff) diff_2 = copy(diff) diff_3 = copy(diff) @@ -179,7 +180,22 @@ def second_order_shift(diff, axis, mode): return [diff_3, diff_2, diff_1] @staticmethod - def second_order_scheme_build(axes, varn, axes_mode): + def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list]: + """ + Building second order (in terms of accuracy) finite-difference stencil. + + Args: + axes: axes that transforms using FDM. (operator in conventional form) + varn: dimensionality of the problem. + axes_mode: 'central' or combination of 'f' and 'b'. + + + Returns: + - finite_diff: transformed axes due to finite difference mode. + - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + + + """ order = len(axes) finite_diff = [] direction_list = [] @@ -210,7 +226,21 @@ def second_order_scheme_build(axes, varn, axes_mode): return finite_diff, direction_list @staticmethod - def second_order_sign_order(order, mode, h=1/2): + def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: + """ + Determines the sign of the derivative for the corresponding point transformation from `Finite_diffs.scheme_build`.\n + Same as `sign_order`, but more precise due to second order of accuracy. + + Args: + order: order of differentiation. + mode: calculation type of finite difference. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + + Returns: + sign_list: list, with signs for corresponding points. + + + """ sign_list = [1] for i in range(order): start_list = [] @@ -221,4 +251,3 @@ def second_order_sign_order(order, mode, h=1/2): start_list.append([-3 * (1 / (2 * h)) * sign, 4 * (1 / (2 * h)) * sign, -(1 / (2 * h)) * sign]) sign_list = flatten_list(start_list) return sign_list - diff --git a/input_preprocessing.py b/input_preprocessing.py index 73496879..38304087 100644 --- a/input_preprocessing.py +++ b/input_preprocessing.py @@ -8,79 +8,82 @@ class EquationMixin(): """ - Auxiliary class. This one contains some functions that uses in other classes + Auxiliary class. This one contains some functions that uses in other classes. """ @staticmethod def operator_unify(operator: list) -> list: - """ - This one allows to make operator form simpler. - - Parameters - ---------- - operator : list - operator in input form - - Returns - ------- - unified_operator : list - operator in unified form for preprocessing - - """ - unified_operator = [] - for term in operator: - const = term[0] - vars_set = term[1] - power = term[2] - variables=[] - if len(term)==4: - variables = term[3] - elif isinstance(power,(int,float)): - variables=0 - elif type(power)==list: - for _ in range(len(power)): - variables.append(0) - if variables is None: - if type(power) is list: - unified_operator.append([const, vars_set, power,0]) - else: - unified_operator.append([const, [vars_set], [power],[0]]) + """ + This one allows to make operator form simpler. + + Parameters + ---------- + operator + operator in input form. + + Returns + ------- + unified_operator + operator in unified form for preprocessing. + + """ + unified_operator = [] + for term in operator: + const = term[0] + vars_set = term[1] + power = term[2] + variables=[] + if len(term)==4: + variables = term[3] + elif isinstance(power,(int,float)): + variables=0 + elif type(power)==list: + for _ in range(len(power)): + variables.append(0) + if variables is None: + if type(power) is list: + unified_operator.append([const, vars_set, power,0]) else: - if type(power) is list: - unified_operator.append([const, vars_set, power,variables]) - else: - unified_operator.append([const, [vars_set], [power],[variables]]) - return unified_operator + unified_operator.append([const, [vars_set], [power],[0]]) + else: + if type(power) is list: + unified_operator.append([const, vars_set, power,variables]) + else: + unified_operator.append([const, [vars_set], [power],[variables]]) + return unified_operator @staticmethod def op_dict_to_list(opdict: dict) -> list: - """Transform operator in dict form to list + """ + Transform operator in dict form to list. Parameters ---------- - opdict: dict - operator in dict form + opdict + operator in dict form. Returns ------- - oplist: list - operator in list (input) form + oplist + operator in list (input) form. """ return list([list(term.values()) for term in opdict.values()]) @staticmethod def closest_point(grid: torch.Tensor, target_point: float) -> int: - """Defines the closest boundary point to the grid. Auxiliary function. + """ + Defines the closest boundary point to the grid. Auxiliary function. + Parameters ---------- grid - array of a n-D points + array of a n-D points. target_point - boundary point + boundary point. Returns ------- min_pos - position of the boundary point on the grid + position of the boundary point on the grid. """ min_dist = np.inf pos = 0 @@ -96,18 +99,18 @@ def closest_point(grid: torch.Tensor, target_point: float) -> int: @staticmethod def bndpos(grid: torch.Tensor, bnd: torch.Tensor) -> Union[list, int]: """ - Returns the position of the boundary points on the grid + Returns the position of the boundary points on the grid. Parameters ---------- - grid : torch.Tensor - grid for coefficient in form of torch.Tensor mapping - bnd : torch.Tensor - boundary + grid + grid for coefficient in form of torch.Tensor mapping. + bnd + boundary conditions. Returns ------- bndposlist - list of positions of the boundary points on the grid + list of positions of the boundary points on the grid. """ if grid.shape[0] == 1: grid = grid.reshape(-1,1) @@ -143,21 +146,19 @@ def search_pos(bnd): return bndposlist @staticmethod - def bnd_unify(bconds): + def bnd_unify(bconds: list) -> list: """ - Serves to add None instead of empty operator + Serves to add None instead of empty operator. Parameters ---------- - bconds : list - - boundary in conventional form (see examples) + bconds + boundary in conventional form (see examples). Returns ------- - unified_bconds : list - - boundary in input-friendly form + unified_bconds + boundary in input-friendly form. """ if bconds==None: @@ -203,9 +204,30 @@ def bnd_prepare(self, value): class Equation_NN(EquationMixin, Points_type, Finite_diffs): - """Prepares equation, boundary conditions for NN method. """ - def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_order=2): + Prepares equation, boundary conditions for NN method. + """ + def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, + h: float = 0.001, inner_order: int = 1, boundary_order: int = 2): + """ + Prepares equation, boundary conditions for NN method. + + Parameters + ---------- + grid: + array of a n-D points. + operator: + equation. + bconds: + boundary conditions. + h + discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: + accuracy inner order for finite difference. Default = 1 + boundary_order: + accuracy boundary order for finite difference. Default = 2 + + """ self.grid = grid self.operator = operator self.bconds = bconds @@ -213,31 +235,20 @@ def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_orde self.inner_order = inner_order self.boundary_order = boundary_order - def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type) -> list: + def operator_to_type_op(self, unified_operator: list, nvars: int, axes_scheme_type: str) -> list: """ Function serves applying different schemes to a different point types for entire operator - Parameters - ---------- - unified_operator : list - operator in a proper form - nvars : int - Dimensionality of the problem. - axes_scheme_type : string - 'central' or combination of 'f' and 'b'. - h : float, optional - Derivative precision parameter (to simplify h in the expression - (f(x+h)-f(x))/h). The default is 1/2. - boundary_order : int, optional - Order of finite difference scheme taken at the domain boundary points. - The default is 1. + Args: + unified_operator: operator in a proper form. + nvars: dimensionality of the problem. + axes_scheme_type: 'central' or combination of 'f' and 'b'. + + Returns: + fin_diff_op: list, where the conventional operator changed to steps and signs (see scheme_build function description). + - Returns - ------- - fin_diff_op : list - list, where the conventional operator changed to steps and signs - (see scheme_build function description). """ fin_diff_op = [] @@ -249,7 +260,7 @@ def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type) -> list power = term[2] variables = term[3] for k, term in enumerate(vars_set): - # None is for case where we need the fuction without derivatives + # None is for case where we need the function without derivatives if term != [None]: if axes_scheme_type == 'central': if self.inner_order==1: @@ -273,24 +284,18 @@ def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type) -> list fin_diff_op.append([const, fin_diff_list, s_order_list, power,variables]) return fin_diff_op - def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): + def finite_diff_scheme_to_grid_list(self, finite_diff_scheme: list, grid_points: torch.Tensor) -> list: """ Auxiliary function that converts integer grid steps in term described in finite-difference scheme to a grids with shifted points, i.e. from field (x,y) -> (x,y+h). - Parameters - ---------- - finite_diff_scheme : list - operator_to_type_op one term - grid : torch.Tensor - h : float - derivative precision parameter. The default is 0.001. + Args: + finite_diff_scheme: operator_to_type_op one term. + grid: array of a n-D points. - Returns - ------- - s_grid_list : list - list, where the steps and signs changed to grid and signs + Returns: + s_grid_list: list, where the steps and signs changed to grid and signs. """ s_grid_list = [] for i, shifts in enumerate(finite_diff_scheme): @@ -301,25 +306,22 @@ def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): s_grid_list.append(s_grid) return s_grid_list - def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): + def type_op_to_grid_shift_op(self, fin_diff_op: list, grid_points: torch.Tensor) -> list: """ Converts operator to a grid_shift form. Includes term coefficient conversion. Coeff may be integer, function or array, last two are mapped to a - subgrid that corresponds point type + subgrid that corresponds point type. + + Args: + fin_diff_op: operator_to_type_op result. + grid_points: grid with sorted nodes. + + + Returns: + shift_grid_op: final form of differential operator used in the algorithm for single grid type. - Parameters - ---------- - fin_diff_op : list - operator_to_type_op result. - grid_points : torch.Tensor - grid with sorted nodes. - Returns - ------- - shift_grid_op : list - final form of differential operator used in the algorithm for single - grid type """ shift_grid_op = [] for term1 in fin_diff_op: @@ -353,18 +355,15 @@ def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: """ Applies all transformations to operator. - Parameters - ---------- - unified_operator : list - operator_unify result. - grid_dict : dict - result Points_type.grid_sort + Args: + unified_operator: operator_unify result. + grid_dict: result Points_type.grid_sort + + + Returns: + operator_list: final form of differential operator used in the algorithm for subset grid types. + - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm for subset - grid types. """ operator_list = [] @@ -378,25 +377,12 @@ def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: def operator_prepare(self) -> list: """ - Changes the operator in conventional form to the input one - - Parameters - ---------- - op : list - operator in conventional form. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - subset : list, optional - grid subsets used for the operator ,e.g. ['central','fb','ff'] - true_grid : torch.Tensor, optional - initial grid for coefficient in form of torch.Tensor mapping - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm for subset - grid types + Changes the operator in conventional form to the input one. + + Returns: + operator_list: final form of differential operator used in the algorithm for subset grid types. + + """ grid_dict = self.grid_sort(self.grid) @@ -422,19 +408,12 @@ def operator_prepare(self) -> list: def bnd_prepare(self): """ - Parameters - ---------- - bconds : list - boundary in conventional form (see examples) - grid : torch.Tensor - grid with sorted nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. + Prepares boundary conditions from conventional form to input form. Returns ------- prepared_bcond : list - boundary in input form + boundary in input form. """ grid_dict = self.grid_sort(self.grid) @@ -465,30 +444,42 @@ def bnd_prepare(self): class Equation_autograd(EquationMixin): - """ Prepares equation for autograd method (i.e., from conventional form to input form). """ - def __init__(self, grid, operator, bconds): + Prepares equation for autograd method (i.e., from conventional form to input form). + """ + def __init__(self, grid: torch.Tensor, operator: Union[list, dict], bconds: list): + """ + Prepares equation for autograd method (i.e., from conventional form to input form). + + Parameters + ---------- + grid + array of a n-D points. + operator: + equation. + bconds: + boundary conditions. + """ self.grid = grid self.operator = operator self.bconds = bconds @staticmethod def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: - """Prepares equation's coefficients for autograd method. + """ + Prepares equation's coefficients for autograd method. Parameters ---------- unified_operator - result input_preprocessing.EquationMixin.operator_unify + result input_preprocessing.EquationMixin.operator_unify. grid - array of a n-D points + array of a n-D points. Returns ------- autograd_op - prepared autograd operator - - + prepared autograd operator. """ autograd_op=[] for term in unified_operator: @@ -508,16 +499,12 @@ def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: def operator_prepare(self): """ - Changes the operator in conventional form to the input one - - Parameters - ---------- - op : list - operator in conventional form. + Changes the operator in conventional form to the input one. + Returns ------- operator_list : list - final form of differential operator used in the algorithm + final form of differential operator used in the algorithm. """ if type(self.operator) is list and type(self.operator[0]) is dict: @@ -536,13 +523,12 @@ def operator_prepare(self): def bnd_prepare(self): """ - Prepares boundary conditions from conventional form to input form + Prepares boundary conditions from conventional form to input form. Returns ------- prepared_bconds : list - boundary in input form - + boundary in input form. """ bconds = self.bnd_unify(self.bconds) if bconds==None: @@ -572,6 +558,18 @@ class Equation_mat(EquationMixin): Prepares equation for matrix optimization method (i.e., from conventional form to input form). """ def __init__(self, grid, operator, bconds): + """ + Prepares equation for matrix optimization method (i.e., from conventional form to input form). + + Parameters + ---------- + grid: + array of a n-D points. + operator: + equation. + bconds: + boundary conditions. + """ self.grid = grid self.operator = operator self.bconds = bconds @@ -585,7 +583,6 @@ def operator_prepare(self) -> list: prepared_operator final form of differential operator used in the algorithm - """ if type(self.operator) == dict: operator_list = self.op_dict_to_list(self.operator) @@ -594,12 +591,12 @@ def operator_prepare(self) -> list: def bnd_prepare(self) -> list: """ - Prepares boundary conditions from conventional form to input form + Prepares boundary conditions from conventional form to input form. Returns ------- prepared_bconds - final form of boundary conditions used in the algorithm + final form of boundary conditions used in the algorithm. """ prepared_bconds=[] @@ -630,19 +627,29 @@ def bnd_prepare(self) -> list: class Equation(): - def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, h = 0.001, inner_order = 1, boundary_order = 2): + """ + Interface for preparing equations due to chosen calculation method. + """ + def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, + h: float = 0.001, inner_order: int = 1, boundary_order: int = 2): """ + Interface for preparing equations due to chosen calculation method. Parameters ---------- - grid - - operator - - bconds + grid: + array of a n-D points. + operator: + equation. + bconds: + boundary conditions. h - inner_order - boundary_order + discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: + accuracy inner order for finite difference. Default = 1 + boundary_order: + accuracy boundary order for finite difference. Default = 2 + """ self.grid = grid self.operator = operator @@ -651,19 +658,18 @@ def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list self.inner_order = inner_order self.boundary_order = boundary_order def set_strategy(self, strategy: str) -> Union[Equation_NN, Equation_mat, Equation_autograd]: - """Setting the calculation method. + """ + Setting the calculation method. Parameters ---------- strategy: str - Calculation method. (i.e., "NN", "autograd", "mat") + Calculation method. (i.e., "NN", "autograd", "mat"). Returns ------- chosen_method : - A given calculation method - - + A given calculation method. """ if strategy == 'NN': return Equation_NN(self.grid, self.operator, self.bconds, h=self.h, inner_order=self.inner_order, boundary_order=self.boundary_order) diff --git a/points_type.py b/points_type.py index a17b4e79..493eec85 100644 --- a/points_type.py +++ b/points_type.py @@ -9,21 +9,23 @@ class Points_type(): """ @staticmethod def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: - """Shifts all values of an array 'grid' on a value 'shift' in a direcion of - axis 'axis', somewhat is equivalent to a np.roll + """ + Shifts all values of an array 'grid' on a value 'shift' in a direction of + axis 'axis', somewhat is equivalent to a np.roll. + Parameters ---------- grid: torch.Tensor (torch.float64) - array of a n-D points + array of a n-D points. axis:int - axis to which the shift is applied + axis to which the shift is applied. shift: float - shift value + shift value. Returns ------- grid_shift: torch.Tensor (torch.float64) - shifted array of a n-D points + shifted array of a n-D points. """ grid_shift = grid.clone() @@ -32,19 +34,20 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: @staticmethod def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: - """Test if points in `p` are in `hull` + """ + Test if points in `p` are in `hull` `p` should be a `NxK` coordinates of `N` points in `K` dimensions `hull` is either a scipy.spatial.Delaunay object or the `MxK` array of the coordinates of `M` points in `K`dimensions for which Delaunay triangulation - will be computed + will be computed. Parameters ---------- p: torch.Tensor (torch.float64) - shifted array of a n-D points + shifted array of a n-D points. hull: - initial array of a n-D points + initial array of a n-D points. Returns ------- in_hull_array: @@ -65,13 +68,14 @@ def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: return np.array(((p <= upbound) & (p >= lowbound)).reshape(-1)) @staticmethod - def point_typization(grid:torch.Tensor) -> dict: - """Allocating subsets for FD (i.e., 'f', 'b', 'central'). + def point_typization(grid: torch.Tensor) -> dict: + """ + Allocating subsets for FD (i.e., 'f', 'b', 'central'). Parameters ---------- grid : torch.Tensor (torch.float64) - array of a n-D points + array of a n-D points. Returns ------- @@ -83,7 +87,7 @@ def point_typization(grid:torch.Tensor) -> dict: 'f' means that if we add small number to a position of corresponding coordinate we stay in the 'hull' 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull' + of corresponding coordinate we stay in the 'hull'. """ direction_list = [] for axis in range(grid.shape[1]): @@ -117,18 +121,17 @@ def point_typization(grid:torch.Tensor) -> dict: @staticmethod def grid_sort(grid: torch.Tensor) -> dict: """ - Sorting grid points for each subset + Sorting grid points for each subset from result Points_type.point_typization. Parameters ---------- grid : torch.Tensor (torch.float64) - array of a n-D points - + array of a n-D points. Returns ------- grid_dict : dict - sorted grid in each subset (see Points_type.point_typization) + sorted grid in each subset (see Points_type.point_typization). """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) diff --git a/solver.py b/solver.py index 7ca5bbf7..c306873f 100644 --- a/solver.py +++ b/solver.py @@ -1,91 +1,161 @@ - import torch import numpy as np import matplotlib.pyplot as plt from matplotlib import cm + +import input_preprocessing from cache import Model_prepare +from typing import Union import os import sys import datetime -def grid_format_prepare(coord_list, mode='NN'): - if type(coord_list)==torch.Tensor: + +def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: str = 'NN') -> torch.Tensor: + """ + Prepares grid to a general form. Further, formatted grid can be processed + by Points_type.point_typization for 'NN' and 'autograd' methods. + + Parameters + ---------- + coord_list + list with coordinates. + mode + Calculation method. (i.e., "NN", "autograd", "mat") + + Returns + ------- + grid + grid in a general form + """ + if type(coord_list) == torch.Tensor: print('Grid is a tensor, assuming old format, no action performed') return coord_list - if mode=='NN' or mode =='autograd': - if len(coord_list)==1: - coord_list=torch.tensor(coord_list) - grid=coord_list.reshape(-1,1).float() + if mode == 'NN' or mode == 'autograd': + if len(coord_list) == 1: + coord_list = torch.tensor(coord_list) + grid = coord_list.reshape(-1, 1).float() else: - coord_list_tensor=[] + coord_list_tensor = [] for item in coord_list: - if isinstance(item,(np.ndarray)): + if isinstance(item, (np.ndarray)): coord_list_tensor.append(torch.from_numpy(item)) else: coord_list_tensor.append(item) - grid=torch.cartesian_prod(*coord_list_tensor).float() - elif mode=='mat': + grid = torch.cartesian_prod(*coord_list_tensor).float() + elif mode == 'mat': grid = np.meshgrid(*coord_list) grid = torch.tensor(np.array(grid)) return grid + class Solver(Model_prepare): - def __init__(self, grid, equal_cls, model, mode, weak_form=None): + """ + High-level interface for solving equations. + """ + def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + model: torch.nn.Sequential, mode: str): + """ + High-level interface for solving equations. + + Parameters + ---------- + grid + array of a n-D points. + equal_cls + object from input_preprocessing (see input_preprocessing.Equation). + model + neural network. + mode + Calculation method. (i.e., "NN", "autograd", "mat"). + """ super().__init__(grid, equal_cls, model, mode) - self.weak_form = weak_form - def optimizer_choice(self, optimizer, learning_rate): - if optimizer=='Adam': - if self.mode =='NN' or self.mode == 'autograd': + def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ + Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: + """ + Parameters + ---------- + optimizer: + optimizer choice (Adam, SGD, LBFGS). + learning_rate: + determines the step size at each iteration while moving toward a minimum of a loss function. + + Returns + ------- + optimizer + torch.optimizer object as is. + + """ + if optimizer == 'Adam': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.Adam(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.Adam([self.model.requires_grad_()], lr=learning_rate) - - elif optimizer=='SGD': - if self.mode =='NN' or self.mode == 'autograd': + + elif optimizer == 'SGD': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.SGD(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.SGD([self.model.requires_grad_()], lr=learning_rate) - - elif optimizer=='LBFGS': - if self.mode =='NN' or self.mode == 'autograd': + + elif optimizer == 'LBFGS': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.LBFGS(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.LBFGS([self.model.requires_grad_()], lr=learning_rate) - + else: print('Wrong optimizer chosen, optimization was not performed') return self.model - + return optimizer + def solution_print(self, title: Union[str, None] = None, solution_print: bool = False, + solution_save: bool = True, save_dir: Union[str, None] = None): + """ + Visualizes the resulting solution. - def solution_print(self,title=None,solution_print=False,solution_save=True,save_dir=None): - if save_dir==None: - img_dir=os.path.join(os.path.dirname( __file__ ), 'img') - if not(os.path.isdir(img_dir)): + Parameters + ---------- + title + as is. + solution_print + draws a figure. + solution_save: + saves figure. + save_dir: + a directory where saved figure in. + """ + if save_dir == None: + img_dir = os.path.join(os.path.dirname(__file__), 'img') + if not (os.path.isdir(img_dir)): os.mkdir(img_dir) - directory=os.path.abspath(os.path.join(img_dir,str(datetime.datetime.now().timestamp())+'.png')) + directory = os.path.abspath(os.path.join(img_dir, str(datetime.datetime.now().timestamp()) + '.png')) else: - directory=os.path.join(save_dir, str(datetime.datetime.now().timestamp())+'.png') + directory = os.path.join(save_dir, str(datetime.datetime.now().timestamp()) + '.png') if self.mode == 'NN' or self.mode == 'autograd': nvars_model = self.model(self.grid).shape[-1] nparams = self.grid.shape[1] fig = plt.figure() for i in range(nvars_model): if nparams == 1: - ax1 = fig.add_subplot(1,nvars_model,i+1) - if title!=None: - ax1.set_title(title+' variable {}'.format(i)) - ax1.scatter(self.grid.detach().numpy().reshape(-1), self.model(self.grid)[:,i].detach().numpy().reshape(-1)) + ax1 = fig.add_subplot(1, nvars_model, i + 1) + if title != None: + ax1.set_title(title + ' variable {}'.format(i)) + ax1.scatter(self.grid.detach().numpy().reshape(-1), + self.model(self.grid).detach().numpy().reshape(-1)) else: - ax1 = fig.add_subplot(1,nvars_model,i+1,projection='3d') + ax1 = fig.add_subplot(1, nvars_model, i + 1, projection='3d') - if title!=None: - ax1.set_title(title+' variable {}'.format(i)) + if title != None: + ax1.set_title(title + ' variable {}'.format(i)) - ax1.plot_trisurf(self.grid[:, 0].detach().numpy().reshape(-1), self.grid[:, 1].detach().numpy().reshape(-1), - self.model(self.grid)[:,i].detach().numpy().reshape(-1), cmap=cm.jet, linewidth=0.2, alpha=1) + ax1.plot_trisurf(self.grid[:, 0].detach().numpy().reshape(-1), + self.grid[:, 1].detach().numpy().reshape(-1), + self.model(self.grid)[:, i].detach().numpy().reshape(-1), cmap=cm.jet, + linewidth=0.2, alpha=1) ax1.set_xlabel("x1") ax1.set_ylabel("x2") if solution_print: @@ -107,7 +177,7 @@ def solution_print(self,title=None,solution_print=False,solution_save=True,save_ elif nparams == 2: fig = plt.figure() ax = fig.add_subplot(111, projection='3d') - if title!=None: + if title != None: ax.set_title(title) ax.plot_trisurf(self.grid[0].reshape(-1), self.grid[1].reshape(-1), self.model.reshape(-1).detach().numpy(), cmap=cm.jet, linewidth=0.2, alpha=1) @@ -119,13 +189,73 @@ def solution_print(self,title=None,solution_print=False,solution_save=True,save_ plt.savefig(directory) plt.close() + def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, learning_rate: float = 1e-4, + eps: float = 1e-5, tmin: int = 1000, tmax: float = 1e5, nmodels: Union[int, None] = None, + name: Union[str, None] = None, abs_loss: Union[None, float] = None, use_cache: bool = True, + cache_dir: str = '../cache/', cache_verbose: bool = False, save_always: bool = False, + print_every: Union[int, None] = 100, cache_model: Union[torch.nn.Sequential, None] = None, + patience: int = 5, loss_oscillation_window: int = 100, no_improvement_patience: int = 1000, + model_randomize_parameter: Union[int,float] = 0, optimizer_mode: str = 'Adam', + step_plot_print: Union[bool, int] = False, step_plot_save: Union[bool, int] = False, + image_save_dir: Union[str, None] = None) -> torch.nn.Sequential: + """ + High-level interface for solving equations. + + Parameters + ---------- + lambda_bound + an arbitrary chosen constant, influence only convergence speed. + verbose + more detailed info about training process. + learning_rate + determines the step size at each iteration while moving toward a minimum of a loss function. + eps + arbitrarily small number that uses for loss comparison criterion. + tmax + maximum execution time. + nmodels + ? + name + model name if saved. + abs_loss: Union[None, float] + absolute loss???. + use_cache + as is. + cache_dir + directory where saved cache in. + cache_verbose + more detailed info about models in cache. + save_always + ???? + print_every + prints the state of each given iteration to the command line. + cache_model + model that uses in cache + patience + if the loss is less than a certain value, then the counter increases, + when it reaches the given patience, the calculation stops. + loss_oscillation_window + + no_improvement_patience + + model_randomize_parameter + creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + optimizer_mode + optimizer choice (Adam, SGD, LBFGS). + step_plot_print + draws a figure through each given step. + step_plot_save + saves a figure through each given step. + image_save_dir + a directory where saved figure in. + + Returns + ------- + model + neural network. + - def solve(self, lambda_bound=10, verbose=False, learning_rate=1e-4, eps=1e-5, tmin=1000, - tmax=1e5,nmodels=None,name=None, abs_loss=None, - use_cache=True,cache_dir='../cache/',cache_verbose=False, - save_always=False,print_every=100,cache_model=None, - patience=5,loss_oscillation_window=100,no_improvement_patience=1000, - model_randomize_parameter=0, optimizer_mode='Adam',step_plot_print=False,step_plot_save=False,image_save_dir=None): + """ # prepare input data to uniform format r = self.create_random_fn(model_randomize_parameter) # use cache if needed @@ -133,113 +263,105 @@ def solve(self, lambda_bound=10, verbose=False, learning_rate=1e-4, eps=1e-5, tm self.model, min_loss = self.cache(cache_dir=cache_dir, nmodels=nmodels, lambda_bound=lambda_bound, - weak_form=self.weak_form, cache_verbose=cache_verbose, model_randomize_parameter=model_randomize_parameter, cache_model=cache_model) optimizer = self.optimizer_choice(optimizer_mode, learning_rate) - + if True: - #if not use_cache: - min_loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) - - save_cache=False - - if min_loss >0.1 or save_always: # why 0.1? - save_cache=True - - + # if not use_cache: + min_loss = self.loss_evaluation(lambda_bound=lambda_bound) + + save_cache = False + + if min_loss > 0.1 or save_always: # why 0.1? + save_cache = True + # standard NN stuff if verbose: - print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(),min_loss)) - + print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(), min_loss)) + t = 0 - - last_loss=np.zeros(loss_oscillation_window)+float(min_loss) - line=np.polyfit(range(loss_oscillation_window),last_loss,1) + + last_loss = np.zeros(loss_oscillation_window) + float(min_loss) + line = np.polyfit(range(loss_oscillation_window), last_loss, 1) def closure(): nonlocal cur_loss optimizer.zero_grad() - loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) - + loss = self.loss_evaluation(lambda_bound=lambda_bound) + loss.backward() cur_loss = loss.item() return loss - - stop_dings=0 - t_imp_start=0 + + stop_dings = 0 + t_imp_start = 0 # to stop train proceduce we fit the line in the loss data - #if line is flat enough 5 times, we stop the procedure - cur_loss=min_loss - while stop_dings<=patience: + # if line is flat enough 5 times, we stop the procedure + cur_loss = min_loss + while stop_dings <= patience: optimizer.step(closure) - if cur_loss!=cur_loss: - print('Loss is equal to NaN, something went wrong (LBFGS+high leraning rate and pytorch<1.12 could be the problem)') - break - - last_loss[(t-1)%loss_oscillation_window]=cur_loss + last_loss[t % loss_oscillation_window] = cur_loss - - if cur_loss0: - stop_dings+=1 - if self.mode =='NN' or self.mode =='autograd': + if t % loss_oscillation_window == 0: + line = np.polyfit(range(loss_oscillation_window), last_loss, 1) + if abs(line[0] / cur_loss) < eps and t > 0: + stop_dings += 1 + if self.mode == 'NN' or self.mode == 'autograd': self.model.apply(r) if verbose: print('[{}] Oscillation near the same loss'.format(datetime.datetime.now())) print(info_string) if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t),solution_print=step_plot_print,solution_save=step_plot_save,save_dir=image_save_dir) - - if (t-t_imp_start==no_improvement_patience): + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + + if (t - t_imp_start == no_improvement_patience): if verbose: - print('[{}] No improvement in {} steps'.format(datetime.datetime.now(),no_improvement_patience)) + print('[{}] No improvement in {} steps'.format(datetime.datetime.now(), no_improvement_patience)) print(info_string) if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t),solution_print=step_plot_print,solution_save=step_plot_save,save_dir=image_save_dir) - t_imp_start=t - stop_dings+=1 - if self.mode =='NN' or self.mode =='autograd': - self.model.apply(r) + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + t_imp_start = t + stop_dings += 1 + if self.mode == 'NN' or self.mode == 'autograd': + self.model.apply(r) - - if abs_loss!=None and cur_loss tmax: break if (save_cache and use_cache) or save_always: - if self.mode=='mat': - self.save_model_mat(cache_dir=cache_dir,name=name) + if self.mode == 'mat': + self.save_model_mat(cache_dir=cache_dir, name=name) else: - self.save_model(self.model, self.model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir,name=name) + self.save_model(self.model, self.model.state_dict(), optimizer.state_dict(), cache_dir=cache_dir, + name=name) return self.model - - - - - diff --git a/test.ipynb b/test.ipynb new file mode 100644 index 00000000..19bc6ee8 --- /dev/null +++ b/test.ipynb @@ -0,0 +1,401 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 223, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import torch\n", + "import pandas as pd\n", + "import scipy\n", + "from scipy.io import loadmat\n", + "import seaborn as sns\n", + "from points_type import *\n", + "from matplotlib import cm\n", + "from input_preprocessing import *\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "from metrics import *\n", + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": 228, + "outputs": [], + "source": [ + "test_data = loadmat('examples/benchmarking_data/schrodinger_test.mat')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 229, + "outputs": [], + "source": [ + "data = test_data['uu'].reshape(-1,1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 230, + "outputs": [], + "source": [ + "u = np.real(data).reshape(-1)\n", + "v = np.imag(data).reshape(-1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 127, + "outputs": [], + "source": [ + "x_grid = np.linspace(-5,5,256)\n", + "t_grid = np.linspace(0,np.pi/2,201)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 138, + "outputs": [], + "source": [ + "n = [10, 20, 30, 40]\n", + "dct = {'grid': [], 'interpolated_values_u': []}\n", + "for number in n:\n", + " x_grid = np.linspace(-5,5,number+1)\n", + " t_grid = np.linspace(0,np.pi/2,number+1)\n", + "\n", + " x = torch.from_numpy(x_grid)\n", + " t = torch.from_numpy(t_grid)\n", + "\n", + " grid = torch.cartesian_prod(x, t).float()\n", + " interpolated_values = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", + " N = [number for i in range(len(interpolated_values))]\n", + " dct['grid'].extend(N)\n", + " dct['interpolated_values_u'].extend(interpolated_values)\n", + "test_data = pd.DataFrame(dct)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 177, + "outputs": [], + "source": [ + "experiment_data_10 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[10]_cache=False.csv')\n", + "experiment_data_20_30 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[20, 30]_cache=False.csv')\n", + "experiment_data_40 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[40]_cache=False.csv')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 178, + "outputs": [], + "source": [ + "time_list_20 = [2207.342264, 1902.780795 , 2051.769395, 1990.625440, 1669.295443, 1630.366187, 1723.594879, 1735.121449,\n", + " 1989.412900, 1873.436806]\n", + "time_list_30 = [3609.354969, 3564.459932, 3626.499491, 3613.533968, 3818.807240, 3496.345418, 3819.675368,\n", + " 3774.777136, 3795.635416, 3678.129626]\n", + "time_20 = []\n", + "for val in time_list_20:\n", + " time_20_i = [val for i in range(21*21)]\n", + " time_20.append(time_20_i)\n", + "\n", + "time_30 = []\n", + "for val in time_list_30:\n", + " time_30_i = [val for i in range(31*31)]\n", + " time_30.append(time_30_i)\n", + "\n", + "time_20 = np.concatenate(time_20)\n", + "time_30 = np.concatenate(time_30)\n", + "time_20_30 = np.concatenate((time_20, time_30))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 179, + "outputs": [], + "source": [ + "experiment_data_20_30['time'] = time_20_30" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 180, + "outputs": [], + "source": [ + "experiment_data = pd.concat([experiment_data_10, experiment_data_20_30, experiment_data_40])" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 181, + "outputs": [ + { + "data": { + "text/plain": " n_iter grid u v time\n0 0 10 0.022888 -0.000939 614.424292\n1 0 10 0.041829 0.003819 614.424292\n2 0 10 0.055094 0.011037 614.424292\n3 0 10 0.062073 0.018570 614.424292\n4 0 10 0.065190 0.025084 614.424292\n... ... ... ... ... ...\n16805 9 40 0.029098 0.052447 7034.597967\n16806 9 40 0.028391 0.053487 7034.597967\n16807 9 40 0.027643 0.054499 7034.597967\n16808 9 40 0.026854 0.055485 7034.597967\n16809 9 40 0.026025 0.056450 7034.597967\n\n[32040 rows x 5 columns]", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
n_itergriduvtime
00100.022888-0.000939614.424292
10100.0418290.003819614.424292
20100.0550940.011037614.424292
30100.0620730.018570614.424292
40100.0651900.025084614.424292
..................
168059400.0290980.0524477034.597967
168069400.0283910.0534877034.597967
168079400.0276430.0544997034.597967
168089400.0268540.0554857034.597967
168099400.0260250.0564507034.597967
\n

32040 rows × 5 columns

\n
" + }, + "execution_count": 181, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "experiment_data" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 191, + "outputs": [ + { + "data": { + "text/plain": "604.3163278102875" + }, + "execution_count": 191, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "i = 1\n", + "n = 10\n", + "experiment_data.query(f'n_iter == {i} and grid == {n}')['time'].values[0]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 208, + "outputs": [], + "source": [ + "experiment_result = {'grid': [], 'n_iter': [], 'rmse': [],'nrmse': [], 'time': []}\n", + "for grid in range(10,50,10):\n", + " for n_iter in range(10):\n", + " test = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", + " result = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['u'].values\n", + " rmse = np.sqrt(np.mean((test - result) ** 2))\n", + " nrmse = rmse / np.std(result)\n", + " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", + " experiment_result['grid'].append(grid+1)\n", + " experiment_result['n_iter'].append(n_iter)\n", + " experiment_result['rmse'].append(rmse)\n", + " experiment_result['nrmse'].append(nrmse)\n", + " experiment_result['time'].append(time)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 209, + "outputs": [], + "source": [ + "data = pd.DataFrame(experiment_result)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 210, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 210, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 2)\n", + "\n", + "sns.boxplot(ax=axes[0],x='grid', y='time', data=data , showfliers=False)\n", + "\n", + "sns.boxplot(ax=axes[1],x='grid', y='rmse', data=data, showfliers=False)\n" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 233, + "outputs": [], + "source": [ + "x_grid = np.linspace(-5,5,256)\n", + "t_grid = np.linspace(0,np.pi/2,201)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()\n", + "# model_interp = test_data[test_data['grid'] == 10]['interpolated_values_u'].values" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 237, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 237, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", + " v, cmap=cm.jet,linewidth=0.2, alpha=1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 216, + "outputs": [ + { + "data": { + "text/plain": "array([ 0.02695056, 0.03260382, 0.03420716, 0.03475574, 0.03492699,\n 0.034309 , 0.03360063, 0.03225105, 0.03112513, 0.02763927,\n 0.02636017, 0.07295037, 0.07319679, 0.069523 , 0.06700413,\n 0.06497201, 0.06289575, 0.06013422, 0.05698216, 0.05429713,\n 0.05016175, 0.04734092, 0.19711746, 0.1959615 , 0.19299055,\n 0.19102151, 0.1856891 , 0.17916657, 0.17192488, 0.16365532,\n 0.15508521, 0.14466002, 0.13431266, 0.52562333, 0.51784725,\n 0.49690626, 0.47210287, 0.44857975, 0.43657531, 0.4349855 ,\n 0.43444197, 0.42871452, 0.40757898, 0.37171966, 1.28071124,\n 1.19795536, 0.97999627, 0.71583666, 0.52882028, 0.52176611,\n 0.69010228, 0.92236583, 1.08294288, 1.08007742, 0.90557495,\n 1.99958073, 1.76528341, 0.98348639, -0.58226342, -2.94717013,\n -3.68001601, -0.72895298, 1.52340548, 2.18368684, 2.02259221,\n 1.41672212, 1.31929761, 1.22996009, 0.99357603, 0.70483754,\n 0.4996009 , 0.49408717, 0.68434882, 0.94443911, 1.12189913,\n 1.11994926, 0.93233271, 0.54579459, 0.53729191, 0.51428934,\n 0.48712315, 0.46181896, 0.44922325, 0.44867047, 0.44995444,\n 0.44506521, 0.42373231, 0.3863336 , 0.20492919, 0.20358779,\n 0.20035814, 0.19838182, 0.1929824 , 0.18638219, 0.179006 ,\n 0.17072315, 0.16164543, 0.15096439, 0.14012327, 0.0758565 ,\n 0.07634097, 0.07252998, 0.06995601, 0.0676208 , 0.0653251 ,\n 0.06267691, 0.0591192 , 0.05621535, 0.05225826, 0.0491113 ,\n 0.02802405, 0.03258097, 0.0342325 , 0.03482958, 0.03496365,\n 0.034333 , 0.03373345, 0.03231509, 0.03101465, 0.02774415,\n 0.02632516])" + }, + "execution_count": 216, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 231, + "outputs": [ + { + "data": { + "text/plain": "array([0.02695056, 0.02827012, 0.0288274 , ..., 0.02668994, 0.02647879,\n 0.02632516])" + }, + "execution_count": 231, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "u" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From ee18f50785bbbf79109d8be9141f823446c152b2 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 10 Nov 2022 16:00:18 +0300 Subject: [PATCH 051/225] Some docs improvements --- cache.py | 117 +++++++----------- config.py | 9 +- examples/example_schrodinger.py | 28 +++-- finite_diffs.py | 11 +- input_preprocessing.py | 211 ++++++++++---------------------- points_type.py | 76 +++++------- solver.py | 18 +-- 7 files changed, 170 insertions(+), 300 deletions(-) diff --git a/cache.py b/cache.py index 059827dd..282ddd09 100644 --- a/cache.py +++ b/cache.py @@ -10,7 +10,9 @@ import os import glob import numpy as np -from typing import Union +from typing import Union, Tuple, Any + +from torch import Tensor from metrics import Solution from input_preprocessing import Equation, EquationMixin @@ -31,14 +33,11 @@ def create_random_fn(eps: Union[int,float]): """ Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - Parameters - ---------- - eps: - randomize parameter - - Returns - ------- + Args: + eps: randomize parameter + Returns: + randomize_params: smth """ def randomize_params(m): if type(m)==torch.nn.Linear or type(m)==torch.nn.Conv2d: @@ -47,13 +46,12 @@ def randomize_params(m): return randomize_params - def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', + def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/', nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: ''' Looking for a saved cache. - Parameters - ---------- + Args: lambda_bound: float an arbitrary chosen constant, influence only convergence speed. cache_dir: str @@ -63,8 +61,7 @@ def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', cache_verbose: bool more detailed info about models in cache. - Returns - ------- + Returns: best_checkpoint min_loss @@ -138,18 +135,12 @@ def save_model(self, prep_model: torch.nn.Sequential, state: dict, optimizer_sta """ Saved model in a cache (uses for 'NN' and 'autograd' methods). - Parameters - ---------- - prep_model - model to save - state - a dict holding current model state (i.e., dictionary that maps each layer to its parameter tensor). - optimizer_state - a dict holding current optimization state (i.e., values, hyperparameters). - cache_dir - directory where saved cache in. - name - name for a model + Args: + prep_model: model to save. + state: a dict holding current model state (i.e., dictionary that maps each layer to its parameter tensor). + optimizer_state: a dict holding current optimization state (i.e., values, hyperparameters). + cache_dir: directory where saved cache in. + name: name for a model. """ if name==None: name=str(datetime.datetime.now().timestamp()) @@ -166,8 +157,7 @@ def save_model_mat(self, cache_dir: str = '../cache/', name: Union[str, None] = """ Saved model in a cache (uses for 'mat' method). - Parameters - ---------- + Args: cache_dir a directory where saved cache in. name @@ -203,21 +193,17 @@ def closure(): self.save_model(cache_model,cache_model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir, name=name) - def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> tuple[Any, dict]: """ - ??? + Smth - Parameters - ---------- - trained_model - ??? - cache_verbose: - more detailed info about models in cache. + Args: + trained_model: smth + cache_verbose: more detailed info about models in cache. - Returns - ------- - model - optimizer.state_dict + Returns: + model: NN or mat + optimizer.state_dict: dict """ optimizer = torch.optim.Adam(self.model.parameters(), lr=0.001) @@ -240,21 +226,18 @@ def closure(): return self.model, optimizer.state_dict() - def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ + tuple[Any, None], tuple[Any, Union[dict, Any]]]: """ - ??? + Smth - Parameters - ---------- - cache_checkpoint - ??? - cache_verbose - more detailed info about models in cache. + Args: + cache_checkpoint: smth + cache_verbose: more detailed info about models in cache. - Returns - ------- - model - optimizer_state + Returns: + model: + optimizer_state: """ # do nothing if cache is empty if cache_checkpoint==None: @@ -281,29 +264,23 @@ def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, cache_verbose: bool,model_randomize_parameter: Union[float, None], - cache_model: torch.nn.Sequential) -> Union[torch.nn.Sequential, torch.Tensor]: + cache_model: torch.nn.Sequential) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: """ Restores the model from the cache and uses it for retraining. - Parameters - ---------- - cache_dir - a directory where saved cache in. - nmodels - ??? - lambda_bound - an arbitrary chosen constant, influence only convergence speed. - cache_verbose - more detailed info about models in cache. - model_randomize_parameter - Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - cache_model - cached model + Args: + cache_dir: a directory where saved cache in. + nmodels: smth + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + cache_verbose: more detailed info about models in cache. + model_randomize_parameter: Creates a random model parameters (weights, biases) multiplied with a given + randomize parameter. + cache_model: cached model - Returns - ------- - model - min_loss + + Returns: + model: NN or mat + min_loss: min loss as is. """ r = self.create_random_fn(model_randomize_parameter) diff --git a/config.py b/config.py index 9c185cf8..a41e034d 100644 --- a/config.py +++ b/config.py @@ -117,13 +117,11 @@ def __init__(self, *args): If there is passed path to a custom config, we try to load it and change default parameters - Parameters - ---------- + Args: config_path: str, optional path to a custom config - Returns - ------- + Returns: self: Config config used in solver.optimization_solver function """ @@ -157,8 +155,7 @@ def set_parameter(self, parameter_string: str, value: Union[bool,float, int, Non We run checks to see we set them corretly - Parameters - ---------- + Args: parameter_string: string in format 'module.parameter' diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 3cd3e65e..dd7e472c 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -20,7 +20,7 @@ result = [] device = torch.device('cpu') res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10, 20, 30, 40] +grd = [10] for n in grd: for i in range(10): @@ -194,14 +194,20 @@ schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') @@ -211,9 +217,9 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=True, learning_rate=1e-3, + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=100,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) diff --git a/finite_diffs.py b/finite_diffs.py index 682b6460..60a83c46 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -22,8 +22,7 @@ def finite_diff_shift(diff: list, axis: int, mode: str) -> list: mode: the finite difference mode (i.e., forward, backward, central). Returns: - diff_list: list with shifted points - + diff_list: list with shifted points. """ # """ @@ -75,12 +74,9 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: varn: Dimensionality of the problem. axes_mode: 'central' or combination of 'f' and 'b'. - Returns: - finite_diff: transformed axes due to finite difference mode. - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). - - """ order = len(axes) finite_diff = [] @@ -164,7 +160,6 @@ def second_order_shift(diff: list, axis: int, mode: str) -> list: Returns: diff_list: list with shifted points. - """ diff_1 = copy(diff) diff_2 = copy(diff) @@ -193,8 +188,6 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[li Returns: - finite_diff: transformed axes due to finite difference mode. - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). - - """ order = len(axes) finite_diff = [] @@ -238,8 +231,6 @@ def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: Returns: sign_list: list, with signs for corresponding points. - - """ sign_list = [1] for i in range(order): diff --git a/input_preprocessing.py b/input_preprocessing.py index 38304087..c98b5c78 100644 --- a/input_preprocessing.py +++ b/input_preprocessing.py @@ -15,16 +15,11 @@ def operator_unify(operator: list) -> list: """ This one allows to make operator form simpler. - Parameters - ---------- - operator - operator in input form. - - Returns - ------- - unified_operator - operator in unified form for preprocessing. + Args: + operator: operator in input form. + Returns: + unified_operator: operator in unified form for preprocessing. """ unified_operator = [] for term in operator: @@ -56,16 +51,11 @@ def op_dict_to_list(opdict: dict) -> list: """ Transform operator in dict form to list. - Parameters - ---------- - opdict - operator in dict form. - - Returns - ------- - oplist - operator in list (input) form. + Args: + opdict: operator in dict form. + Returns: + oplist: operator in list (input) form. """ return list([list(term.values()) for term in opdict.values()]) @@ -74,16 +64,12 @@ def closest_point(grid: torch.Tensor, target_point: float) -> int: """ Defines the closest boundary point to the grid. Auxiliary function. - Parameters - ---------- - grid - array of a n-D points. - target_point - boundary point. - Returns - ------- - min_pos - position of the boundary point on the grid. + Args: + grid: array of a n-D points. + target_point: boundary point. + + Returns: + min_pos: position of the boundary point on the grid. """ min_dist = np.inf pos = 0 @@ -101,16 +87,12 @@ def bndpos(grid: torch.Tensor, bnd: torch.Tensor) -> Union[list, int]: """ Returns the position of the boundary points on the grid. - Parameters - ---------- - grid - grid for coefficient in form of torch.Tensor mapping. - bnd - boundary conditions. - Returns - ------- - bndposlist - list of positions of the boundary points on the grid. + Args: + grid: grid for coefficient in form of torch.Tensor mapping. + bnd: boundary conditions. + + Returns: + bndposlist: list of positions of the boundary points on the grid. """ if grid.shape[0] == 1: grid = grid.reshape(-1,1) @@ -150,16 +132,11 @@ def bnd_unify(bconds: list) -> list: """ Serves to add None instead of empty operator. - Parameters - ---------- - bconds - boundary in conventional form (see examples). - - Returns - ------- - unified_bconds - boundary in input-friendly form. + Args: + bconds: boundary in conventional form (see examples). + Returns: + unified_bconds: boundary in input-friendly form. """ if bconds==None: return None @@ -212,21 +189,13 @@ def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list """ Prepares equation, boundary conditions for NN method. - Parameters - ---------- - grid: - array of a n-D points. - operator: - equation. - bconds: - boundary conditions. - h - discretizing parameter in finite difference method (i.e., grid resolution for scheme). - inner_order: - accuracy inner order for finite difference. Default = 1 - boundary_order: - accuracy boundary order for finite difference. Default = 2 - + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 """ self.grid = grid self.operator = operator @@ -247,9 +216,6 @@ def operator_to_type_op(self, unified_operator: list, nvars: int, axes_scheme_ty Returns: fin_diff_op: list, where the conventional operator changed to steps and signs (see scheme_build function description). - - - """ fin_diff_op = [] for term in unified_operator: @@ -317,11 +283,8 @@ def type_op_to_grid_shift_op(self, fin_diff_op: list, grid_points: torch.Tensor) fin_diff_op: operator_to_type_op result. grid_points: grid with sorted nodes. - Returns: shift_grid_op: final form of differential operator used in the algorithm for single grid type. - - """ shift_grid_op = [] for term1 in fin_diff_op: @@ -359,12 +322,8 @@ def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: unified_operator: operator_unify result. grid_dict: result Points_type.grid_sort - Returns: operator_list: final form of differential operator used in the algorithm for subset grid types. - - - """ operator_list = [] nvars = list(grid_dict.values())[0].shape[-1] @@ -410,11 +369,8 @@ def bnd_prepare(self): """ Prepares boundary conditions from conventional form to input form. - Returns - ------- - prepared_bcond : list - boundary in input form. - + Returns: + prepared_bcond: boundary in input form. """ grid_dict = self.grid_sort(self.grid) sorted_grid = torch.cat(list(grid_dict.values())) @@ -451,14 +407,11 @@ def __init__(self, grid: torch.Tensor, operator: Union[list, dict], bconds: list """ Prepares equation for autograd method (i.e., from conventional form to input form). - Parameters - ---------- - grid - array of a n-D points. - operator: - equation. - bconds: - boundary conditions. + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + """ self.grid = grid self.operator = operator @@ -469,17 +422,13 @@ def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: """ Prepares equation's coefficients for autograd method. - Parameters - ---------- - unified_operator - result input_preprocessing.EquationMixin.operator_unify. - grid - array of a n-D points. + Args: + unified_operator: result input_preprocessing.EquationMixin.operator_unify. + grid: array of a n-D points. + + Returns: + autograd_op: prepared autograd operator. - Returns - ------- - autograd_op - prepared autograd operator. """ autograd_op=[] for term in unified_operator: @@ -501,11 +450,8 @@ def operator_prepare(self): """ Changes the operator in conventional form to the input one. - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm. - + Returns: + operator_list: final form of differential operator used in the algorithm. """ if type(self.operator) is list and type(self.operator[0]) is dict: num_of_eq = len(self.operator) @@ -525,10 +471,8 @@ def bnd_prepare(self): """ Prepares boundary conditions from conventional form to input form. - Returns - ------- - prepared_bconds : list - boundary in input form. + Returns: + prepared_bconds: boundary in input form. """ bconds = self.bnd_unify(self.bconds) if bconds==None: @@ -561,14 +505,10 @@ def __init__(self, grid, operator, bconds): """ Prepares equation for matrix optimization method (i.e., from conventional form to input form). - Parameters - ---------- - grid: - array of a n-D points. - operator: - equation. - bconds: - boundary conditions. + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. """ self.grid = grid self.operator = operator @@ -578,11 +518,8 @@ def operator_prepare(self) -> list: """ Prepares operator from conventional form to input form - Returns - ------- - prepared_operator - final form of differential operator used in the algorithm - + Returns: + prepared_operator: final form of differential operator used in the algorithm. """ if type(self.operator) == dict: operator_list = self.op_dict_to_list(self.operator) @@ -593,10 +530,8 @@ def bnd_prepare(self) -> list: """ Prepares boundary conditions from conventional form to input form. - Returns - ------- - prepared_bconds - final form of boundary conditions used in the algorithm. + Returns: + prepared_bconds: final form of boundary conditions used in the algorithm. """ prepared_bconds=[] @@ -635,21 +570,13 @@ def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list """ Interface for preparing equations due to chosen calculation method. - Parameters - ---------- - grid: - array of a n-D points. - operator: - equation. - bconds: - boundary conditions. - h - discretizing parameter in finite difference method (i.e., grid resolution for scheme). - inner_order: - accuracy inner order for finite difference. Default = 1 - boundary_order: - accuracy boundary order for finite difference. Default = 2 - + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 """ self.grid = grid self.operator = operator @@ -661,15 +588,11 @@ def set_strategy(self, strategy: str) -> Union[Equation_NN, Equation_mat, Equati """ Setting the calculation method. - Parameters - ---------- - strategy: str - Calculation method. (i.e., "NN", "autograd", "mat"). + Args: + strategy: Calculation method. (i.e., "NN", "autograd", "mat"). - Returns - ------- - chosen_method : - A given calculation method. + Returns: + chosen_method: A given calculation method. """ if strategy == 'NN': return Equation_NN(self.grid, self.operator, self.bconds, h=self.h, inner_order=self.inner_order, boundary_order=self.boundary_order) diff --git a/points_type.py b/points_type.py index 493eec85..e8b545e7 100644 --- a/points_type.py +++ b/points_type.py @@ -13,19 +13,14 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: Shifts all values of an array 'grid' on a value 'shift' in a direction of axis 'axis', somewhat is equivalent to a np.roll. - Parameters - ---------- - grid: torch.Tensor (torch.float64) - array of a n-D points. - axis:int - axis to which the shift is applied. - shift: float - shift value. - - Returns - ------- - grid_shift: torch.Tensor (torch.float64) - shifted array of a n-D points. + Args: + grid: array of a n-D points. + axis: axis to which the shift is applied. + shift: shift value. + + Returns: + grid_shift: shifted array of a n-D points. + """ grid_shift = grid.clone() @@ -42,16 +37,13 @@ def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: coordinates of `M` points in `K`dimensions for which Delaunay triangulation will be computed. - Parameters - ---------- - p: torch.Tensor (torch.float64) - shifted array of a n-D points. - hull: - initial array of a n-D points. - Returns - ------- - in_hull_array: - array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. + Args: + p: shifted array of a n-D points. + hull: initial array of a n-D points. + + Returns: + in_hull_array: array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. + """ if p.shape[1] > 1: if not isinstance(hull, Delaunay): @@ -72,22 +64,15 @@ def point_typization(grid: torch.Tensor) -> dict: """ Allocating subsets for FD (i.e., 'f', 'b', 'central'). - Parameters - ---------- - grid : torch.Tensor (torch.float64) - array of a n-D points. - - Returns - ------- - point_type : dict - dictionary point:type with a points in a 'grid' above - type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string - is a dimension n - 'f' means that if we add small number to a position of corresponding - coordinate we stay in the 'hull' - 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull'. + Args: + grid: array of a n-D points. + + Returns: + point_type: type with a points in a 'grid' above. Type may be 'central' - inner point + and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add + small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we + subtract small number from o a position of corresponding coordinate we stay in the 'hull'. + """ direction_list = [] for axis in range(grid.shape[1]): @@ -123,15 +108,12 @@ def grid_sort(grid: torch.Tensor) -> dict: """ Sorting grid points for each subset from result Points_type.point_typization. - Parameters - ---------- - grid : torch.Tensor (torch.float64) - array of a n-D points. + Args: + grid: tarray of a n-D points. + + Returns: + grid_dict: sorted grid in each subset (see Points_type.point_typization). - Returns - ------- - grid_dict : dict - sorted grid in each subset (see Points_type.point_typization). """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) diff --git a/solver.py b/solver.py index c306873f..eacc22ca 100644 --- a/solver.py +++ b/solver.py @@ -59,8 +59,7 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa """ High-level interface for solving equations. - Parameters - ---------- + Args: grid array of a n-D points. equal_cls @@ -75,15 +74,13 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: """ - Parameters - ---------- + Args: optimizer: optimizer choice (Adam, SGD, LBFGS). learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. - Returns - ------- + Returns: optimizer torch.optimizer object as is. @@ -117,8 +114,7 @@ def solution_print(self, title: Union[str, None] = None, solution_print: bool = """ Visualizes the resulting solution. - Parameters - ---------- + Args: title as is. solution_print @@ -201,8 +197,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea """ High-level interface for solving equations. - Parameters - ---------- + Args: lambda_bound an arbitrary chosen constant, influence only convergence speed. verbose @@ -249,8 +244,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea image_save_dir a directory where saved figure in. - Returns - ------- + Returns: model neural network. From 805b625ca4e815271815032cc46b1e90e1b76b99 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:11:36 +0300 Subject: [PATCH 052/225] Update requirements.txt --- requirements.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6af3841d..0ea69fc1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -matplotlib==3.6.0; python_version == '3.9' -numpy==1.23.4 -pandas==1.5.0 -scipy==1.9.2 -seaborn==0.12.0 -torch==1.12.1 +matplotlib +numpy +pandas +scipy +seaborn +torch autodocsumm From b58c433b8e28a420343523c935ff04f7645bb8e7 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 10 Nov 2022 19:27:51 +0300 Subject: [PATCH 053/225] Create index.rst --- docs/source/index.rst | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 docs/source/index.rst diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 00000000..7f8633a1 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,44 @@ +{\rtf1\ansi\ansicpg1251\cocoartf2639 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 HelveticaNeue-Bold;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue0;\red202\green202\blue202; +\red70\green137\blue204;\red183\green111\blue179;\red167\green197\blue152;\red255\green255\blue255;\red27\green31\blue35; +} +{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\csgray\c0\c0;\cssrgb\c83137\c83137\c83137; +\cssrgb\c33725\c61176\c83922;\cssrgb\c77255\c52549\c75294;\cssrgb\c70980\c80784\c65882;\cssrgb\c100000\c100000\c100000;\cssrgb\c14118\c16078\c18431; +} +\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 +\deftab720 +\pard\pardeftab720\partightenfactor0 + +\f0\fs24 \cf2 \cb3 \expnd0\expndtw0\kerning0 +\outl0\strokewidth0 \strokec4 Welcome to TEDEouS documentation!\ +\pard\pardeftab720\partightenfactor0 + +\f1\b \cf2 \strokec5 ================================== +\f0\b0 \strokec4 \ +\ +\pard\pardeftab720\partightenfactor0 +\cf2 \strokec6 .. container::\strokec4 \ +\ + | There is contained main documentation for the \strokec5 `TEDEouS framework `__\strokec4 .\ +\ +Content:\ +\pard\pardeftab720\partightenfactor0 + +\f1\b \cf2 \strokec5 ======== +\f0\b0 \strokec4 \ +\pard\pardeftab720\partightenfactor0 +\cf2 \strokec6 .. toctree::\strokec4 \ + \strokec6 :maxdepth:\strokec4 \strokec7 1\strokec4 \ +\ + gefest/index\ + components/index\ + contribution\ + faq\ + about\ +\ +\pard\pardeftab720\sa320\partightenfactor0 +\cf2 \cb8 \outl0\strokewidth0 **TEDEouS** (**T**\\orch **E**\\\cb1 \kerning1\expnd0\expndtw0 xhaustive **D**\\ifferential **E**\\quation **S**\\olver\cb8 \expnd0\expndtw0\kerning0 +)\ +Combines power of torch, numerical methods and math overall to conquer and solve ALL \{O,P\}DEs\cb1 \ +\cb8 There are some examples to provide a little insight to an operator form} \ No newline at end of file From 0acb2fd9f4c43714cb34704604de92905c3d7b20 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:36:45 +0300 Subject: [PATCH 054/225] Update index.rst --- docs/source/index.rst | 50 +++++++++++-------------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 7f8633a1..7fdfb091 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,44 +1,20 @@ -{\rtf1\ansi\ansicpg1251\cocoartf2639 -\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 HelveticaNeue-Bold;} -{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue0;\red202\green202\blue202; -\red70\green137\blue204;\red183\green111\blue179;\red167\green197\blue152;\red255\green255\blue255;\red27\green31\blue35; -} -{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\csgray\c0\c0;\cssrgb\c83137\c83137\c83137; -\cssrgb\c33725\c61176\c83922;\cssrgb\c77255\c52549\c75294;\cssrgb\c70980\c80784\c65882;\cssrgb\c100000\c100000\c100000;\cssrgb\c14118\c16078\c18431; -} -\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 -\deftab720 -\pard\pardeftab720\partightenfactor0 +Welcome to TEDEouS documentation!\ +================================== +.. container:: -\f0\fs24 \cf2 \cb3 \expnd0\expndtw0\kerning0 -\outl0\strokewidth0 \strokec4 Welcome to TEDEouS documentation!\ -\pard\pardeftab720\partightenfactor0 + | There is contained main documentation for the \strokec5 `TEDEouS framework `__. -\f1\b \cf2 \strokec5 ================================== -\f0\b0 \strokec4 \ -\ -\pard\pardeftab720\partightenfactor0 -\cf2 \strokec6 .. container::\strokec4 \ -\ - | There is contained main documentation for the \strokec5 `TEDEouS framework `__\strokec4 .\ -\ -Content:\ -\pard\pardeftab720\partightenfactor0 +Content: +======== +.. toctree:: + :maxdepth: 1 -\f1\b \cf2 \strokec5 ======== -\f0\b0 \strokec4 \ -\pard\pardeftab720\partightenfactor0 -\cf2 \strokec6 .. toctree::\strokec4 \ - \strokec6 :maxdepth:\strokec4 \strokec7 1\strokec4 \ -\ - gefest/index\ + tedeous/index\ components/index\ contribution\ faq\ about\ -\ -\pard\pardeftab720\sa320\partightenfactor0 -\cf2 \cb8 \outl0\strokewidth0 **TEDEouS** (**T**\\orch **E**\\\cb1 \kerning1\expnd0\expndtw0 xhaustive **D**\\ifferential **E**\\quation **S**\\olver\cb8 \expnd0\expndtw0\kerning0 -)\ -Combines power of torch, numerical methods and math overall to conquer and solve ALL \{O,P\}DEs\cb1 \ -\cb8 There are some examples to provide a little insight to an operator form} \ No newline at end of file + +**TEDEouS** (**T**\orch **E**\xhaustive **D**\ifferential **E**\quation **S**\olver) +Combines power of torch, numerical methods and math overall to conquer and solve ALL {O,P}DEs. +There are some examples to provide a little insight to an operator form From 8a271b1f31108d794d0f5ca903fdef3993658ff5 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:37:10 +0300 Subject: [PATCH 055/225] Update index.rst --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 7fdfb091..9191a212 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -2,7 +2,7 @@ Welcome to TEDEouS documentation!\ ================================== .. container:: - | There is contained main documentation for the \strokec5 `TEDEouS framework `__. + | There is contained main documentation for the `TEDEouS framework `__. Content: ======== From 8f205741cc15655c3f497c215b4d0a64c9e27e20 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 14 Nov 2022 00:23:55 +0300 Subject: [PATCH 056/225] Update example_schrodinger.py --- examples/example_schrodinger.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index dd7e472c..0e1de56b 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -20,7 +20,7 @@ result = [] device = torch.device('cpu') res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10] +grd = [10, 20, 30, 40, 50] for n in grd: for i in range(10): @@ -209,7 +209,7 @@ torch.nn.Linear(100, 2) ) - equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') @@ -217,9 +217,9 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1, verbose=True, learning_rate=0.8, + model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=100,step_plot_save=True,image_save_dir=img_dir) + save_always=False,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) From bcdd36760bb4f61f0c7cdbb036b96c3fe159974d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 13:13:46 +0300 Subject: [PATCH 057/225] Some docs stuff --- docs/source/Modules/cache.rst | 6 ++++++ docs/source/Modules/config.rst | 6 ++++++ docs/source/Modules/finite_diffs.rst | 6 ++++++ docs/source/Modules/input_preprocessing.rst | 6 ++++++ docs/source/Modules/metrics.rst | 5 +++++ docs/source/Modules/points_type.rst | 5 +++++ docs/source/Modules/solver.rst | 5 +++++ 7 files changed, 39 insertions(+) create mode 100644 docs/source/Modules/cache.rst create mode 100644 docs/source/Modules/config.rst create mode 100644 docs/source/Modules/finite_diffs.rst create mode 100644 docs/source/Modules/input_preprocessing.rst create mode 100644 docs/source/Modules/metrics.rst create mode 100644 docs/source/Modules/points_type.rst create mode 100644 docs/source/Modules/solver.rst diff --git a/docs/source/Modules/cache.rst b/docs/source/Modules/cache.rst new file mode 100644 index 00000000..76e2214c --- /dev/null +++ b/docs/source/Modules/cache.rst @@ -0,0 +1,6 @@ +Cache +===== + +..automodule:: cache + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst new file mode 100644 index 00000000..fc1411ca --- /dev/null +++ b/docs/source/Modules/config.rst @@ -0,0 +1,6 @@ +Config +====== + +..automodule:: config + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/finite_diffs.rst b/docs/source/Modules/finite_diffs.rst new file mode 100644 index 00000000..6f8396f4 --- /dev/null +++ b/docs/source/Modules/finite_diffs.rst @@ -0,0 +1,6 @@ +Finite difference method +======================== + +..automodule:: finite_diffs + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/input_preprocessing.rst b/docs/source/Modules/input_preprocessing.rst new file mode 100644 index 00000000..a7ecef95 --- /dev/null +++ b/docs/source/Modules/input_preprocessing.rst @@ -0,0 +1,6 @@ +Input preprocessing +=================== + +..automodule:: input_preprocessing + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/metrics.rst b/docs/source/Modules/metrics.rst new file mode 100644 index 00000000..0dbe90d7 --- /dev/null +++ b/docs/source/Modules/metrics.rst @@ -0,0 +1,5 @@ +Metrics +======= +..automodule:: metrics + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/points_type.rst b/docs/source/Modules/points_type.rst new file mode 100644 index 00000000..c0b93269 --- /dev/null +++ b/docs/source/Modules/points_type.rst @@ -0,0 +1,5 @@ +Points type + +..automodule:: points_type + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/solver.rst b/docs/source/Modules/solver.rst new file mode 100644 index 00000000..d0293b85 --- /dev/null +++ b/docs/source/Modules/solver.rst @@ -0,0 +1,5 @@ +Solver + +..automodule:: solver + :members: + :no-undoc-members: \ No newline at end of file From 52dbabbb2cb277b9025c6d177c779f22aa725680 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 13:17:43 +0300 Subject: [PATCH 058/225] Update index.rst --- docs/source/index.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 9191a212..6bf54815 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,8 +10,9 @@ Content: :maxdepth: 1 tedeous/index\ - components/index\ - contribution\ + Install and setup\ + Modules/index\ + Examples\ faq\ about\ From 548f6833333c95dba51b9ee4d9785a34a97ee81a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 13:41:17 +0300 Subject: [PATCH 059/225] Update index.rst --- docs/source/index.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 6bf54815..b34c177e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,9 +10,8 @@ Content: :maxdepth: 1 tedeous/index\ - Install and setup\ Modules/index\ - Examples\ + examples\ faq\ about\ From 3dbfb65d4af3d88fa50a42a479a9d4727c14a1fc Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 13:54:59 +0300 Subject: [PATCH 060/225] Some docs stuff --- docs/source/about.rst | 4 ++++ docs/source/faq.rst | 4 ++++ docs/source/tedeous/examples.rst | 4 ++++ docs/source/tedeous/guide.rst | 4 ++++ docs/source/tedeous/index.rst | 1 + docs/source/tedeous/install.rst | 4 ++++ 6 files changed, 21 insertions(+) create mode 100644 docs/source/about.rst create mode 100644 docs/source/faq.rst create mode 100644 docs/source/tedeous/examples.rst create mode 100644 docs/source/tedeous/guide.rst create mode 100644 docs/source/tedeous/index.rst create mode 100644 docs/source/tedeous/install.rst diff --git a/docs/source/about.rst b/docs/source/about.rst new file mode 100644 index 00000000..4ab632d9 --- /dev/null +++ b/docs/source/about.rst @@ -0,0 +1,4 @@ +About us +======== + +TBA... \ No newline at end of file diff --git a/docs/source/faq.rst b/docs/source/faq.rst new file mode 100644 index 00000000..d450539d --- /dev/null +++ b/docs/source/faq.rst @@ -0,0 +1,4 @@ +FAQ +=== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/examples.rst b/docs/source/tedeous/examples.rst new file mode 100644 index 00000000..88c00f17 --- /dev/null +++ b/docs/source/tedeous/examples.rst @@ -0,0 +1,4 @@ +Examples +======== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst new file mode 100644 index 00000000..76866f2a --- /dev/null +++ b/docs/source/tedeous/guide.rst @@ -0,0 +1,4 @@ +Quick guide +=========== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst new file mode 100644 index 00000000..4d972879 --- /dev/null +++ b/docs/source/tedeous/index.rst @@ -0,0 +1 @@ +**This is all about TEDEouS** \ No newline at end of file diff --git a/docs/source/tedeous/install.rst b/docs/source/tedeous/install.rst new file mode 100644 index 00000000..302c7700 --- /dev/null +++ b/docs/source/tedeous/install.rst @@ -0,0 +1,4 @@ +Install +======= + +TBA... \ No newline at end of file From 746634a82a86da455bbdc2fef2cf11a7c6be2fa6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 22:42:01 +0300 Subject: [PATCH 061/225] Create index.rst --- docs/source/modules/index.rst | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/source/modules/index.rst diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst new file mode 100644 index 00000000..becb3532 --- /dev/null +++ b/docs/source/modules/index.rst @@ -0,0 +1,4 @@ +Modules +======= + +This one contain everything about modules into TEDEouS \ No newline at end of file From 564785d9dc1b2b470ca3029f86c9550a40b3d225 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 15:58:01 +0300 Subject: [PATCH 062/225] Update index.rst --- docs/source/index.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index b34c177e..441d07e8 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -11,7 +11,6 @@ Content: tedeous/index\ Modules/index\ - examples\ faq\ about\ From e0807bddc112a78f7cff6563a96aba2463e7ee07 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 16:43:11 +0300 Subject: [PATCH 063/225] Update index.rst --- docs/source/index.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 441d07e8..6f044312 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -9,10 +9,10 @@ Content: .. toctree:: :maxdepth: 1 - tedeous/index\ - Modules/index\ - faq\ - about\ + tedeous/index + Modules/index + faq + about **TEDEouS** (**T**\orch **E**\xhaustive **D**\ifferential **E**\quation **S**\olver) Combines power of torch, numerical methods and math overall to conquer and solve ALL {O,P}DEs. From 8aa8146d0601a7e0b26a016b07a113df8fe1eeaf Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:45:27 +0300 Subject: [PATCH 064/225] Delete index.rst --- docs/source/modules/index.rst | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 docs/source/modules/index.rst diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst deleted file mode 100644 index becb3532..00000000 --- a/docs/source/modules/index.rst +++ /dev/null @@ -1,4 +0,0 @@ -Modules -======= - -This one contain everything about modules into TEDEouS \ No newline at end of file From 185ce98765b2ad1a4c45d7c7ac74afbdad85025f Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:47:10 +0300 Subject: [PATCH 065/225] Update config.rst --- docs/source/Modules/config.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst index fc1411ca..80dbfe7d 100644 --- a/docs/source/Modules/config.rst +++ b/docs/source/Modules/config.rst @@ -1,6 +1,6 @@ Config ====== -..automodule:: config +.. automodule:: config :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 85555939f613b6f9f90146fb63a30ed33f7dff15 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:06 +0300 Subject: [PATCH 066/225] Delete cache.rst --- docs/source/Modules/cache.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/cache.rst diff --git a/docs/source/Modules/cache.rst b/docs/source/Modules/cache.rst deleted file mode 100644 index 76e2214c..00000000 --- a/docs/source/Modules/cache.rst +++ /dev/null @@ -1,6 +0,0 @@ -Cache -===== - -..automodule:: cache - :members: - :no-undoc-members: \ No newline at end of file From dcb250bc12165077d8cf246b46a0c99b6d465694 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:23 +0300 Subject: [PATCH 067/225] Delete config.rst --- docs/source/Modules/config.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/config.rst diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst deleted file mode 100644 index 80dbfe7d..00000000 --- a/docs/source/Modules/config.rst +++ /dev/null @@ -1,6 +0,0 @@ -Config -====== - -.. automodule:: config - :members: - :no-undoc-members: From 98c19c34494e7529d805656f86b48c13ebfdd878 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:31 +0300 Subject: [PATCH 068/225] Delete finite_diffs.rst --- docs/source/Modules/finite_diffs.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/finite_diffs.rst diff --git a/docs/source/Modules/finite_diffs.rst b/docs/source/Modules/finite_diffs.rst deleted file mode 100644 index 6f8396f4..00000000 --- a/docs/source/Modules/finite_diffs.rst +++ /dev/null @@ -1,6 +0,0 @@ -Finite difference method -======================== - -..automodule:: finite_diffs - :members: - :no-undoc-members: \ No newline at end of file From ee0ea31ab7e061398b64b6a6ba0ed80df5dd721d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:37 +0300 Subject: [PATCH 069/225] Delete input_preprocessing.rst --- docs/source/Modules/input_preprocessing.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/input_preprocessing.rst diff --git a/docs/source/Modules/input_preprocessing.rst b/docs/source/Modules/input_preprocessing.rst deleted file mode 100644 index a7ecef95..00000000 --- a/docs/source/Modules/input_preprocessing.rst +++ /dev/null @@ -1,6 +0,0 @@ -Input preprocessing -=================== - -..automodule:: input_preprocessing - :members: - :no-undoc-members: \ No newline at end of file From d76651b49b415d36117a7bec724ecb8987057e05 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:43 +0300 Subject: [PATCH 070/225] Delete metrics.rst --- docs/source/Modules/metrics.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/metrics.rst diff --git a/docs/source/Modules/metrics.rst b/docs/source/Modules/metrics.rst deleted file mode 100644 index 0dbe90d7..00000000 --- a/docs/source/Modules/metrics.rst +++ /dev/null @@ -1,5 +0,0 @@ -Metrics -======= -..automodule:: metrics - :members: - :no-undoc-members: \ No newline at end of file From 3899685d9a198dd7cea78b24e5480bb8110235cc Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:49 +0300 Subject: [PATCH 071/225] Delete points_type.rst --- docs/source/Modules/points_type.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/points_type.rst diff --git a/docs/source/Modules/points_type.rst b/docs/source/Modules/points_type.rst deleted file mode 100644 index c0b93269..00000000 --- a/docs/source/Modules/points_type.rst +++ /dev/null @@ -1,5 +0,0 @@ -Points type - -..automodule:: points_type - :members: - :no-undoc-members: \ No newline at end of file From 4282d28a36fc2d1c2234c86902a05a3b5030cfc6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:55 +0300 Subject: [PATCH 072/225] Delete solver.rst --- docs/source/Modules/solver.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/solver.rst diff --git a/docs/source/Modules/solver.rst b/docs/source/Modules/solver.rst deleted file mode 100644 index d0293b85..00000000 --- a/docs/source/Modules/solver.rst +++ /dev/null @@ -1,5 +0,0 @@ -Solver - -..automodule:: solver - :members: - :no-undoc-members: \ No newline at end of file From 9784de68d3a619a4dd6a9c9dc3fc00ba829ba2c1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 22:51:32 +0300 Subject: [PATCH 073/225] docs stuff --- docs/source/modules/cache.rst | 6 ++++++ docs/source/modules/config.rst | 6 ++++++ docs/source/modules/finite_diffs.rst | 6 ++++++ docs/source/modules/index.rst | 4 ++++ docs/source/modules/input_preprocessing.rst | 6 ++++++ docs/source/modules/metrics.rst | 5 +++++ docs/source/modules/points_type.rst | 5 +++++ docs/source/modules/solver.rst | 5 +++++ 8 files changed, 43 insertions(+) create mode 100644 docs/source/modules/cache.rst create mode 100644 docs/source/modules/config.rst create mode 100644 docs/source/modules/finite_diffs.rst create mode 100644 docs/source/modules/index.rst create mode 100644 docs/source/modules/input_preprocessing.rst create mode 100644 docs/source/modules/metrics.rst create mode 100644 docs/source/modules/points_type.rst create mode 100644 docs/source/modules/solver.rst diff --git a/docs/source/modules/cache.rst b/docs/source/modules/cache.rst new file mode 100644 index 00000000..364566da --- /dev/null +++ b/docs/source/modules/cache.rst @@ -0,0 +1,6 @@ +Cache +===== + +.. automodule:: cache + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst new file mode 100644 index 00000000..67898cf2 --- /dev/null +++ b/docs/source/modules/config.rst @@ -0,0 +1,6 @@ +Config +====== + +.. automodule:: config + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/finite_diffs.rst b/docs/source/modules/finite_diffs.rst new file mode 100644 index 00000000..07f6d2f2 --- /dev/null +++ b/docs/source/modules/finite_diffs.rst @@ -0,0 +1,6 @@ +Finite difference method +======================== + +.. automodule:: finite_diffs + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst new file mode 100644 index 00000000..becb3532 --- /dev/null +++ b/docs/source/modules/index.rst @@ -0,0 +1,4 @@ +Modules +======= + +This one contain everything about modules into TEDEouS \ No newline at end of file diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst new file mode 100644 index 00000000..d15d4807 --- /dev/null +++ b/docs/source/modules/input_preprocessing.rst @@ -0,0 +1,6 @@ +Input preprocessing +=================== + +.. automodule:: input_preprocessing + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/metrics.rst b/docs/source/modules/metrics.rst new file mode 100644 index 00000000..1a9676b2 --- /dev/null +++ b/docs/source/modules/metrics.rst @@ -0,0 +1,5 @@ +Metrics +======= +.. automodule:: metrics + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst new file mode 100644 index 00000000..e48a461f --- /dev/null +++ b/docs/source/modules/points_type.rst @@ -0,0 +1,5 @@ +Points type + +.. automodule:: points_type + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst new file mode 100644 index 00000000..020ff92b --- /dev/null +++ b/docs/source/modules/solver.rst @@ -0,0 +1,5 @@ +Solver + +.. automodule:: solver + :members: + :no-undoc-members: \ No newline at end of file From a6ebe8ec2659ba9727d71e11bac73e554d47f4b4 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:58:07 +0300 Subject: [PATCH 074/225] Update index.rst --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 6f044312..25201969 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,7 +10,7 @@ Content: :maxdepth: 1 tedeous/index - Modules/index + modules/index faq about From c2f1996119d31813df3e93922ca8e4f820b80626 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 00:25:50 +0300 Subject: [PATCH 075/225] Update index.rst --- docs/source/tedeous/index.rst | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 4d972879..7b245ee5 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1 +1,9 @@ -**This is all about TEDEouS** \ No newline at end of file +**This is all about TEDEouS** + +.. toctree:: + :glob: + :maxdepth: 2 + + guide + install + examples From ec12ae19204ea4271f8e7702b06d8c087219542e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 00:27:32 +0300 Subject: [PATCH 076/225] Update index.rst --- docs/source/modules/index.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index becb3532..a593dc55 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -1,4 +1,16 @@ Modules ======= -This one contain everything about modules into TEDEouS \ No newline at end of file +This one contain everything about modules into TEDEouS + +.. toctree:: + :glob: + :maxdepth: 2 + + config + points_type + finite_diffs + input_preprocessing + metrics + cache + solver From 9434259f9a4ae5504f19e5747b9c5a11b86b5ffd Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:06:12 +0300 Subject: [PATCH 077/225] Update index.rst --- docs/source/tedeous/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 7b245ee5..622c816b 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1,3 +1,5 @@ +TEDEouS +======= **This is all about TEDEouS** .. toctree:: From d004d776cf58bb1aaf2795e5a4de39c33317766e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:27:47 +0300 Subject: [PATCH 078/225] Update points_type.rst --- docs/source/modules/points_type.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index e48a461f..2a85e07d 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -1,5 +1,10 @@ +=========== Points type +=========== + +Points type +~~~~~~~~~~~ .. automodule:: points_type :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From b6f6246050e0450b117b7fa4089858b3a996996c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:28:24 +0300 Subject: [PATCH 079/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index d15d4807..9e53c27a 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -1,6 +1,10 @@ +=================== Input preprocessing =================== +Input preprocessing +~~~~~~~~~~~~~~~~~~~ + .. automodule:: input_preprocessing :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 57390952b628eb899dba193735c1f0e9345d54a1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:50:01 +0300 Subject: [PATCH 080/225] Update faq.rst --- docs/source/faq.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index d450539d..fb48daa5 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -1,4 +1,8 @@ FAQ === -TBA... \ No newline at end of file +Frequently asked questions and answers + +.. topic:: What is TEDEouS? + *The TEDEous is а differential equations solver using machine learning methods* + From e1d5d14bd013f899d1c456b2dd42b86df753a733 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:50:48 +0300 Subject: [PATCH 081/225] Update faq.rst --- docs/source/faq.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index fb48daa5..18f9d6d3 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -4,5 +4,6 @@ FAQ Frequently asked questions and answers .. topic:: What is TEDEouS? + *The TEDEous is а differential equations solver using machine learning methods* From f55635f8a49165d2a7a5b66547ef7a1ba7c0c59a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:54:42 +0300 Subject: [PATCH 082/225] Update index.rst --- docs/source/tedeous/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 622c816b..16f2e42c 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1,5 +1,6 @@ TEDEouS ======= + **This is all about TEDEouS** .. toctree:: From e6124ddf9b903da95b40531b869bacc7f0406e86 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:05:13 +0300 Subject: [PATCH 083/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 28 +++++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 9e53c27a..4774abed 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -2,9 +2,27 @@ Input preprocessing =================== -Input preprocessing -~~~~~~~~~~~~~~~~~~~ +class Equation +~~~~~~~~~~~~~~ +.. automodule:: input_preprocessing.Equation + +class Equation_mixin +~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_mixin + +class Equation_NN +~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_NN + +class Equation_mat +~~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_mat + +class Equation_autograd + +.. automodule:: input_preprocessing.Equation_autograd + -.. automodule:: input_preprocessing - :members: - :no-undoc-members: From 3dee706ddcaefdeeaa62c135208db4d5d6d5c319 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:05:31 +0300 Subject: [PATCH 084/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 4774abed..638c1a51 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -22,6 +22,7 @@ class Equation_mat .. automodule:: input_preprocessing.Equation_mat class Equation_autograd +~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd From b9657224de828190203afbd6c9d7b8415e280c2e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:14:48 +0300 Subject: [PATCH 085/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 27 ++++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 638c1a51..bc5bf358 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -5,25 +5,44 @@ Input preprocessing class Equation ~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation + :members: + :no-undoc-members: + -class Equation_mixin +class EquationMixin ~~~~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.Equation_mixin - +.. automodule:: input_preprocessing.EquationMixin + :members: + :no-undoc-members: + +class EquationInt +~~~~~~~~~~~~~~~~~ +.. automodule:: input_preprocessing.EquationInt + :members: + :no-undoc-members: + + class Equation_NN ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_NN + :members: + :no-undoc-members: + class Equation_mat ~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_mat + :members: + :no-undoc-members: + class Equation_autograd ~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd - + :members: + :no-undoc-members: From 954f483acee696fbbc7168c78835d61d1bea9d29 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:29:35 +0300 Subject: [PATCH 086/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 26 +++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index bc5bf358..74c2cfb1 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -4,45 +4,47 @@ Input preprocessing class Equation ~~~~~~~~~~~~~~ + .. automodule:: input_preprocessing.Equation - :members: - :no-undoc-members: + :members: + :no-undoc-members: class EquationMixin ~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.EquationMixin - :members: - :no-undoc-members: + :members: + :no-undoc-members: + class EquationInt ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.EquationInt - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_NN ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_NN - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_mat ~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_mat - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_autograd ~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd - :members: - :no-undoc-members: + :members: + :no-undoc-members: From 08fa808e95824e23b9ca798efe85cf64205f9228 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 18 Nov 2022 00:07:17 +0300 Subject: [PATCH 087/225] Docs fix --- cache.py | 18 +++--------- config.py | 64 ++++++++++++------------------------------ finite_diffs.py | 50 ++------------------------------- input_preprocessing.py | 4 --- points_type.py | 12 ++++---- test.ipynb | 63 +++++++++++++++++++++++++++++++++-------- 6 files changed, 81 insertions(+), 130 deletions(-) diff --git a/cache.py b/cache.py index 282ddd09..585277d9 100644 --- a/cache.py +++ b/cache.py @@ -1,9 +1,3 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Aug 24 11:50:12 2021 - -@author: user -""" import pickle import datetime import torch @@ -66,7 +60,6 @@ def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/' min_loss minimum error in pre-trained error - ''' files=glob.glob(cache_dir+'*.tar') # if files not found @@ -153,17 +146,14 @@ def save_model(self, prep_model: torch.nn.Sequential, state: dict, optimizer_sta 'optimizer_state_dict': optimizer_state}, cache_dir+name+'.tar') def save_model_mat(self, cache_dir: str = '../cache/', name: Union[str, None] = None, - cache_model: torch.nn.Sequential = None): + cache_model: torch.nn.Sequential = None) -> None: """ Saved model in a cache (uses for 'mat' method). Args: - cache_dir - a directory where saved cache in. - name - name for a model - cache_model - model to save + cache_dir: a directory where saved cache in. + name: name for a model + cache_model: model to save """ NN_grid=torch.from_numpy(np.vstack([self.grid[i].reshape(-1) for i in range(self.grid.shape[0])]).T).float() if cache_model==None: diff --git a/config.py b/config.py index a41e034d..d819daf7 100644 --- a/config.py +++ b/config.py @@ -1,12 +1,5 @@ -# -*- coding: utf-8 -*- -""" -Created on Sun Mar 13 14:13:37 2022 - -@author: Sashka -""" - from email.policy import default -from typing import Union +from typing import Union, Optional import json @@ -15,7 +8,6 @@ def read_config(name): config_data = json.load(config_file) return config_data - DEFAULT_CONFIG = """ { "Optimizer": { @@ -63,16 +55,11 @@ def check_module_name(module_name: str) -> bool: Check correctness of the 'first' level of config parameter name we call it module. - Parameters - ---------- - module_name: str - first level of a parameter of a custom config. - - Returns - ------- - module_correctness : bool - true if module presents in 'default' config. + Args: + module_name: first level of a parameter of a custom config. + Returns: + module_correctness: if module presents in 'default' config. """ if module_name in default_config.keys(): return True @@ -85,45 +72,32 @@ def check_param_name(module_name: str, param_name: str) -> bool: Check correctness of the 'first' level of config parameter name we call it module. - Parameters - ---------- - module_name: str - first level of a parameter of a custom config. - - Returns - ------- - module_correctness : bool - true if module presents in 'default' config. + Args: + module_name: first level of a parameter of a custom config. + param_name: specific parameter name. + Returns: + module_correctness: true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): return True else: return False - -''' -We can use old json load. However, it is good to check if the parameters named correctly -So, we make the full 'default' version of the config and load 'non-default' parameters -either from file or using method 'change_parameter' -''' - - class Config: - def __init__(self, *args): + def __init__(self: Union[str, Optional], *args): """ - We init config with default one + We initialize config with default one If there is passed path to a custom config, we try to load it and change default parameters Args: - config_path: str, optional - path to a custom config + config_path: path to a custom config Returns: - self: Config - config used in solver.optimization_solver function + self: config used in solver.optimization_solver function + """ self.params = default_config @@ -153,14 +127,12 @@ def set_parameter(self, parameter_string: str, value: Union[bool,float, int, Non We may want to just change default config parameters manually, without loading the .json - We run checks to see we set them corretly + We run checks to see we set them correctly Args: - parameter_string: - string in format 'module.parameter' + parameter_string: string in format 'module.parameter'. + value: value for the parameter. - value - value for the parameter """ module_name, param = parameter_string.split('.') diff --git a/finite_diffs.py b/finite_diffs.py index 60a83c46..cfcf7c89 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -24,35 +24,6 @@ def finite_diff_shift(diff: list, axis: int, mode: str) -> list: Returns: diff_list: list with shifted points. """ - - # """ - # we do the [0]->([1]-[-1])/(2h) transitions to the axes we need - # as an example d2u/dxdt - # u=[0,0] - # u-> du/dx: - # - # [0,0]->([1,0]-[-1,0])/(2h) - # - # du/dx->d2u/dxdt: - # - # [1,0]->([1,1]-[1,-1])/(2h*2tau) - # - # [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) - # - # But we do not want to take signs into account (too complex), so - # - # u-> du/dx: - # - # [0,0]->[[1,0],[-1,0]] - # - # du/dx->d2u/dxdt: - # - # [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] - # - # Since order is preserved we can compute signs afterwards - # - # """ - diff_p = copy(diff) diff_m = copy(diff) if mode == 'central': @@ -120,18 +91,6 @@ def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: Returns: sign_list: list, with signs for corresponding points. - """ - """ - From transformations above, we always start from +1 (1) - - Every +1 changes to ->[+1,-1] when order of differential rises - - [0,0] (+1) ->([1,0]-[-1,0]) ([+1,-1]) - - Every -1 changes to [-1,+1] - - [[1,0],[-1,0]] ([+1,-1])->[[1,1],[1,-1],[-1,1],[-1,-1]] ([+1,-1,-1,+1]) - """ sign_list = [1] for i in range(order): @@ -144,10 +103,6 @@ def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: sign_list = flatten_list(start_list) return sign_list - """ - The following functions are forward and backward schemes combined - """ - @staticmethod def second_order_shift(diff: list, axis: int, mode: str) -> list: """ @@ -184,10 +139,9 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[li varn: dimensionality of the problem. axes_mode: 'central' or combination of 'f' and 'b'. - Returns: - - finite_diff: transformed axes due to finite difference mode. - - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + finite_diff: transformed axes due to finite difference mode. + direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] diff --git a/input_preprocessing.py b/input_preprocessing.py index c98b5c78..4affe84a 100644 --- a/input_preprocessing.py +++ b/input_preprocessing.py @@ -1,4 +1,3 @@ - import torch import numpy as np from typing import Union @@ -340,9 +339,6 @@ def operator_prepare(self) -> list: Returns: operator_list: final form of differential operator used in the algorithm for subset grid types. - - - """ grid_dict = self.grid_sort(self.grid) nvars = self.grid.shape[-1] diff --git a/points_type.py b/points_type.py index e8b545e7..09c548d6 100644 --- a/points_type.py +++ b/points_type.py @@ -20,8 +20,6 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: Returns: grid_shift: shifted array of a n-D points. - - """ grid_shift = grid.clone() grid_shift[:, axis] = grid[:, axis] + shift @@ -68,10 +66,10 @@ def point_typization(grid: torch.Tensor) -> dict: grid: array of a n-D points. Returns: - point_type: type with a points in a 'grid' above. Type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add - small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we - subtract small number from o a position of corresponding coordinate we stay in the 'hull'. + type with a points in a 'grid' above. Type may be 'central' - inner point + and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add + small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we + subtract small number from o a position of corresponding coordinate we stay in the 'hull'. """ direction_list = [] @@ -109,7 +107,7 @@ def grid_sort(grid: torch.Tensor) -> dict: Sorting grid points for each subset from result Points_type.point_typization. Args: - grid: tarray of a n-D points. + grid: array of a n-D points. Returns: grid_dict: sorted grid in each subset (see Points_type.point_typization). diff --git a/test.ipynb b/test.ipynb index 19bc6ee8..ea40f9c9 100644 --- a/test.ipynb +++ b/test.ipynb @@ -2,20 +2,11 @@ "cells": [ { "cell_type": "code", - "execution_count": 223, + "execution_count": 1, "metadata": { "collapsed": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "import numpy as np\n", "import torch\n", @@ -33,6 +24,36 @@ "%autoreload 2" ] }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [], + "source": [ + "import sys\n", + "import os" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 5, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", "execution_count": 228, @@ -44,6 +65,26 @@ "collapsed": false } }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [ + { + "data": { + "text/plain": "True" + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "torch.cuda.is_available()" + ], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", "execution_count": 229, From 8f3159db7b85ca33eef7b52cbcb541921db79dc1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 18 Nov 2022 15:11:48 +0300 Subject: [PATCH 088/225] Update project structure --- examples/example_KdV.py | 11 +- examples/example_KdV_matrix.py | 10 +- examples/example_Lotka_Volterra.py | 5 +- examples/example_ODE_Legendre.py | 6 +- examples/example_ODE_Legendre_autograd.py | 9 +- examples/example_ODE_Legendre_matrix.py | 9 +- examples/example_Painleve_I.py | 9 +- examples/example_SODtest.py | 8 +- examples/example_SODtest_autograd.py | 8 +- examples/example_heat.py | 6 +- examples/example_schrodinger.py | 7 +- examples/example_wave_autograd.py | 5 +- examples/example_wave_paper.py | 6 +- examples/example_wave_paper_matrix.py | 8 +- examples/example_wave_periodic.py | 11 +- examples/old_config/example_EPDE_form.py | 13 +- examples/old_config/example_KdV_config.py | 11 +- .../example_ODE_Legendre_matrix_config.py | 12 +- examples/old_config/example_wave_config.py | 6 +- examples/to_renew/example_Painleve_II.py | 9 +- examples/to_renew/example_Painleve_III.py | 9 +- examples/to_renew/example_Painleve_IV.py | 9 +- examples/to_renew/example_Painleve_V.py | 9 +- examples/to_renew/example_Painleve_VI.py | 9 +- .../example_wave_comparison_deepxde.py | 8 +- .../example_wave_comparison_deepxde_matrix.py | 5 +- metrics.py | 589 ------------------ cache.py => tedeous/cache.py | 4 +- config.py => tedeous/config.py | 0 finite_diffs.py => tedeous/finite_diffs.py | 0 .../input_preprocessing.py | 4 +- tedeous/metrics.py | 535 ++++++++++++++++ points_type.py => tedeous/points_type.py | 0 solver.py => tedeous/solver.py | 7 +- 34 files changed, 602 insertions(+), 755 deletions(-) delete mode 100644 metrics.py rename cache.py => tedeous/cache.py (99%) rename config.py => tedeous/config.py (100%) rename finite_diffs.py => tedeous/finite_diffs.py (100%) rename input_preprocessing.py => tedeous/input_preprocessing.py (99%) create mode 100644 tedeous/metrics.py rename points_type.py => tedeous/points_type.py (100%) rename solver.py => tedeous/solver.py (98%) diff --git a/examples/example_KdV.py b/examples/example_KdV.py index 33af9b0c..997b5843 100644 --- a/examples/example_KdV.py +++ b/examples/example_KdV.py @@ -6,11 +6,6 @@ """ import torch import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -24,9 +19,9 @@ sys.path.append('../') -from solver import Solver -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation import time diff --git a/examples/example_KdV_matrix.py b/examples/example_KdV_matrix.py index cfe14509..365640b2 100644 --- a/examples/example_KdV_matrix.py +++ b/examples/example_KdV_matrix.py @@ -8,9 +8,7 @@ import numpy as np import torch import time -import pandas as pd -import matplotlib.pyplot as plt -from scipy.spatial import Delaunay + os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" import sys @@ -19,9 +17,9 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation +from tedeous.metrics import Solution diff --git a/examples/example_Lotka_Volterra.py b/examples/example_Lotka_Volterra.py index c3ac4973..1302f32c 100644 --- a/examples/example_Lotka_Volterra.py +++ b/examples/example_Lotka_Volterra.py @@ -11,7 +11,6 @@ import torch import numpy as np import matplotlib.pyplot as plt -import scipy from scipy import integrate import os @@ -22,8 +21,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver import time diff --git a/examples/example_ODE_Legendre.py b/examples/example_ODE_Legendre.py index 09b7ceec..07baca79 100644 --- a/examples/example_ODE_Legendre.py +++ b/examples/example_ODE_Legendre.py @@ -6,8 +6,6 @@ """ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import os import sys @@ -17,8 +15,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver from scipy.special import legendre import time diff --git a/examples/example_ODE_Legendre_autograd.py b/examples/example_ODE_Legendre_autograd.py index 46ae80fb..904899c3 100644 --- a/examples/example_ODE_Legendre_autograd.py +++ b/examples/example_ODE_Legendre_autograd.py @@ -7,10 +7,6 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D from scipy.special import legendre os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -23,9 +19,8 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver, grid_format_prepare -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_ODE_Legendre_matrix.py b/examples/example_ODE_Legendre_matrix.py index 26cf70d6..4dee7a18 100644 --- a/examples/example_ODE_Legendre_matrix.py +++ b/examples/example_ODE_Legendre_matrix.py @@ -7,10 +7,6 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D from scipy.special import legendre os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -22,9 +18,8 @@ sys.path.append('../') -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_Painleve_I.py b/examples/example_Painleve_I.py index 8e52f31f..96d08431 100644 --- a/examples/example_Painleve_I.py +++ b/examples/example_Painleve_I.py @@ -7,8 +7,7 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from scipy.spatial import Delaunay + os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" import sys @@ -17,9 +16,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_SODtest.py b/examples/example_SODtest.py index 447f4e2c..ac8a4374 100644 --- a/examples/example_SODtest.py +++ b/examples/example_SODtest.py @@ -4,9 +4,7 @@ import time import matplotlib.pyplot as plt from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from scipy.spatial import Delaunay + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys @@ -18,8 +16,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver device = torch.device('cpu') diff --git a/examples/example_SODtest_autograd.py b/examples/example_SODtest_autograd.py index dfa64248..ee6e6af8 100644 --- a/examples/example_SODtest_autograd.py +++ b/examples/example_SODtest_autograd.py @@ -4,17 +4,15 @@ import time import matplotlib.pyplot as plt from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from scipy.spatial import Delaunay + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation device = torch.device('cpu') diff --git a/examples/example_heat.py b/examples/example_heat.py index 9c1826dc..952f700b 100644 --- a/examples/example_heat.py +++ b/examples/example_heat.py @@ -16,9 +16,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 0e1de56b..6a5c3e26 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -1,7 +1,5 @@ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import pandas as pd import os @@ -13,9 +11,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation result = [] device = torch.device('cpu') diff --git a/examples/example_wave_autograd.py b/examples/example_wave_autograd.py index c80186b9..a9a0bce9 100644 --- a/examples/example_wave_autograd.py +++ b/examples/example_wave_autograd.py @@ -6,7 +6,6 @@ """ import numpy as np import torch -import matplotlib.pyplot as plt import sys import os @@ -20,8 +19,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver diff --git a/examples/example_wave_paper.py b/examples/example_wave_paper.py index fb1c61c8..95b46428 100644 --- a/examples/example_wave_paper.py +++ b/examples/example_wave_paper.py @@ -17,9 +17,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time """ diff --git a/examples/example_wave_paper_matrix.py b/examples/example_wave_paper_matrix.py index ac3b384a..6252dbc6 100644 --- a/examples/example_wave_paper_matrix.py +++ b/examples/example_wave_paper_matrix.py @@ -8,7 +8,7 @@ import numpy as np import os import time -import pandas as pd + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys @@ -18,9 +18,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation +from tedeous.metrics import Solution """ Preparing grid diff --git a/examples/example_wave_periodic.py b/examples/example_wave_periodic.py index 5c7428fb..d81b5b06 100644 --- a/examples/example_wave_periodic.py +++ b/examples/example_wave_periodic.py @@ -1,7 +1,5 @@ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import os @@ -13,12 +11,11 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation import time -device = torch.device('mps') +device = torch.device('cpu') # Grid x_grid = np.linspace(0,1,21) t_grid = np.linspace(0,1,21) @@ -116,7 +113,7 @@ model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-2, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every=500,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every=10,step_plot_print=False,step_plot_save=False,image_save_dir=img_dir) end = time.time() print('Time taken 10= ', end - start) \ No newline at end of file diff --git a/examples/old_config/example_EPDE_form.py b/examples/old_config/example_EPDE_form.py index ae3a2357..6ed4abb0 100644 --- a/examples/old_config/example_EPDE_form.py +++ b/examples/old_config/example_EPDE_form.py @@ -4,13 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -22,10 +15,8 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from config import Config -from solver import * -import time - +from tedeous.config import Config +from tedeous.solver import * t=np.array([0. , 0.00025, 0.0005 , 0.00075, 0.001 , 0.00125, 0.0015 , 0.00175, 0.002 , 0.00225, 0.0025 , 0.00275, 0.003 , 0.00325, diff --git a/examples/old_config/example_KdV_config.py b/examples/old_config/example_KdV_config.py index 5a23e10a..e07aa919 100644 --- a/examples/old_config/example_KdV_config.py +++ b/examples/old_config/example_KdV_config.py @@ -4,13 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -23,9 +16,9 @@ sys.path.append('../') -from solver import * +from tedeous.solver import * import time -from config import Config +from tedeous.config import Config diff --git a/examples/old_config/example_ODE_Legendre_matrix_config.py b/examples/old_config/example_ODE_Legendre_matrix_config.py index bdef3967..8e071460 100644 --- a/examples/old_config/example_ODE_Legendre_matrix_config.py +++ b/examples/old_config/example_ODE_Legendre_matrix_config.py @@ -17,17 +17,13 @@ sys.path.append('../') import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import lbfgs_solution,matrix_optimizer,grid_format_prepare +from tedeous.solver import grid_format_prepare import time from scipy.special import legendre -from solver import matrix_cache_lookup + device = torch.device('cpu') -from cache import save_model -from solver import optimization_solver -from config import Config +from tedeous.solver import optimization_solver +from tedeous.config import Config """ Preparing grid diff --git a/examples/old_config/example_wave_config.py b/examples/old_config/example_wave_config.py index e421a726..d34e9cdd 100644 --- a/examples/old_config/example_wave_config.py +++ b/examples/old_config/example_wave_config.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' @@ -16,9 +14,9 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from solver import * +from tedeous.solver import * # from cache import * -from config import Config +from tedeous.config import Config import time """ diff --git a/examples/to_renew/example_Painleve_II.py b/examples/to_renew/example_Painleve_II.py index f9e9477a..80751111 100644 --- a/examples/to_renew/example_Painleve_II.py +++ b/examples/to_renew/example_Painleve_II.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_III.py b/examples/to_renew/example_Painleve_III.py index 7997c49f..f7153fa6 100644 --- a/examples/to_renew/example_Painleve_III.py +++ b/examples/to_renew/example_Painleve_III.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_IV.py b/examples/to_renew/example_Painleve_IV.py index ac3908ef..7393e8c1 100644 --- a/examples/to_renew/example_Painleve_IV.py +++ b/examples/to_renew/example_Painleve_IV.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_V.py b/examples/to_renew/example_Painleve_V.py index ca12ca31..df93e738 100644 --- a/examples/to_renew/example_Painleve_V.py +++ b/examples/to_renew/example_Painleve_V.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_VI.py b/examples/to_renew/example_Painleve_VI.py index 274d65a0..caf20a79 100644 --- a/examples/to_renew/example_Painleve_VI.py +++ b/examples/to_renew/example_Painleve_VI.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_wave_comparison_deepxde.py b/examples/to_renew/example_wave_comparison_deepxde.py index 2a5414c1..4771d03e 100644 --- a/examples/to_renew/example_wave_comparison_deepxde.py +++ b/examples/to_renew/example_wave_comparison_deepxde.py @@ -4,10 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -import scipy import os @@ -19,9 +15,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -from solver import * -from cache import * +from tedeous.cache import * import time """ diff --git a/examples/to_renew/example_wave_comparison_deepxde_matrix.py b/examples/to_renew/example_wave_comparison_deepxde_matrix.py index 61675494..4ea474ee 100644 --- a/examples/to_renew/example_wave_comparison_deepxde_matrix.py +++ b/examples/to_renew/example_wave_comparison_deepxde_matrix.py @@ -4,11 +4,8 @@ @author: user """ -import torch -import numpy as np -import os -from solver import * +from tedeous.solver import * import time """ diff --git a/metrics.py b/metrics.py deleted file mode 100644 index c8645d16..00000000 --- a/metrics.py +++ /dev/null @@ -1,589 +0,0 @@ -import torch -import numpy as np - -from points_type import Points_type -flatten_list = lambda t: [item for sublist in t for item in sublist] - - -class DerivativeInt(): - def take_derivative(self, value): - raise NotImplementedError - -class Derivative_NN(DerivativeInt): - def __init__(self, grid, model): - self.grid = grid - self.model = model - - def take_derivative (self, term): - """ - Axiluary function serves for single differential operator resulting field - derivation - - Parameters - ---------- - model : torch.Sequential - Neural network. - term : TYPE - differential operator in conventional form. - - Returns - ------- - der_term : torch.Tensor - resulting field, computed on a grid. - - """ - # it is may be int, function of grid or torch.Tensor - coeff = term[0] - # this one contains shifted grids (see input_preprocessing module) - shift_grid_list = term[1] - # signs corresponding to a grid - s_order_norm_list = term[2] - # float that represents power of the differential term - power = term[3] - # number of variables in equation - variables = term[4] - # initially it is an ones field - der_term = (torch.zeros_like(self.model(shift_grid_list[0][0])[0:,0]) + 1).reshape(-1,1) - - for j, scheme in enumerate(shift_grid_list): - # every shift in grid we should add with correspoiding sign, so we start - # from zeros - grid_sum = torch.zeros_like(self.model(scheme[0]))[0:,0].reshape(-1,1) #почему схема от 0? - for k, grid in enumerate(scheme): - # and add grid sequentially - grid_sum += (self.model(grid)[0:,variables[j]]).reshape(-1,1) * s_order_norm_list[j][k] - # Here we want to apply differential operators for every term in the product - der_term = der_term * grid_sum ** power[j] - der_term = coeff * der_term - - - return der_term - -class Derivative_autograd(DerivativeInt): - def __init__(self, grid, model): - self.grid = grid - self.model = model - - @staticmethod - def nn_autograd_simple(model, points, order,axis=0): - points.requires_grad=True - gradient_full = [] - f = model(points).sum(0) - for i in range(len(f)): - fi = f[i] - for j in range(order): - grads, = torch.autograd.grad(fi, points, create_graph=True) - fi = grads[:,axis].sum() - gradient_full.append(grads[:,axis].reshape(-1,1)) - gradient_full = torch.hstack(gradient_full) - return gradient_full - - @staticmethod - def nn_autograd_mixed(model, points,axis=[0]): - points.requires_grad=True - gradient_full = [] - f = model(points).sum(0) - for i in range(len(f)): - fi = f[i] - for ax in axis: - grads, = torch.autograd.grad(fi, points, create_graph=True) - fi = grads[:,ax].sum() - gradient_full.append(grads[:,axis[-1]].reshape(-1,1)) - gradient_full = torch.hstack(gradient_full) - return gradient_full - - - def nn_autograd(self, *args, axis=0): - model=args[0] - points=args[1] - if len(args)==3: - order=args[2] - grads=self.nn_autograd_simple(model, points, order,axis=axis) - else: - grads=self.nn_autograd_mixed(model, points,axis=axis) - return grads - - - def take_derivative(self, term): - """ - Axiluary function serves for single differential operator resulting field - derivation - - Parameters - ---------- - model : torch.Sequential - Neural network. - term : TYPE - differential operator in conventional form. - - Returns - ------- - der_term : torch.Tensor - resulting field, computed on a grid. - - """ - # it is may be int, function of grid or torch.Tensor - coeff = term[0] - # this one contains shifted grids (see input_preprocessing module) - product = term[1] - # float that represents power of the differential term - power = term[2] - # list that represent using variables - variables = term[3] - # initially it is an ones field - der_term = (torch.zeros_like(self.model(self.grid))[0:, 0] + 1).reshape(-1, 1) - for j, derivative in enumerate(product): - if derivative == [None]: - der = self.model(self.grid)[:, variables[j]].reshape(-1, 1) - else: - der = self.nn_autograd(self.model, self.grid, axis=derivative)[0:, variables[j]].reshape(-1, 1) - - der_term = der_term * der ** power[j] - - der_term = coeff * der_term - - return der_term - -class Derivative_mat(DerivativeInt): - def __init__(self, grid, model): - self.grid = grid - self.model = model - - @staticmethod - def derivative_1d(model,grid): - # print('1d>2d') - u=model.reshape(-1) - x=grid.reshape(-1) - - # du_forward = (u-torch.roll(u, -1)) / (x-torch.roll(x, -1)) - - # du_backward = (torch.roll(u, 1) - u) / (torch.roll(x, 1) - x) - du = (torch.roll(u, 1) - torch.roll(u, -1))/(torch.roll(x, 1)-torch.roll(x, -1)) - du[0] = (u[0]-u[1])/(x[0]-x[1]) - du[-1] = (u[-1]-u[-2])/(x[-1]-x[-2]) - - du=du.reshape(model.shape) - - return du - - @staticmethod - def derivative(u_tensor, h_tensor, axis, scheme_order=1, boundary_order=1): - #print('shape=',u_tensor.shape) - if (u_tensor.shape[0]==1): - du = Derivative_mat.derivative_1d(u_tensor,h_tensor) - return du - - u_tensor = torch.transpose(u_tensor, 0, axis) - h_tensor = torch.transpose(h_tensor, 0, axis) - - - if scheme_order==1: - du_forward = (-torch.roll(u_tensor, -1) + u_tensor) / \ - (-torch.roll(h_tensor, -1) + h_tensor) - - du_backward = (torch.roll(u_tensor, 1) - u_tensor) / \ - (torch.roll(h_tensor, 1) - h_tensor) - du = (1 / 2) * (du_forward + du_backward) - - # dh=h_tensor[0,1]-h_tensor[0,0] - - if scheme_order==2: - u_shift_down_1 = torch.roll(u_tensor, 1) - u_shift_down_2 = torch.roll(u_tensor, 2) - u_shift_up_1 = torch.roll(u_tensor, -1) - u_shift_up_2 = torch.roll(u_tensor, -2) - - h_shift_down_1 = torch.roll(h_tensor, 1) - h_shift_down_2 = torch.roll(h_tensor, 2) - h_shift_up_1 = torch.roll(h_tensor, -1) - h_shift_up_2 = torch.roll(h_tensor, -2) - - h1_up=h_shift_up_1-h_tensor - h2_up=h_shift_up_2-h_shift_up_1 - - h1_down=h_tensor-h_shift_down_1 - h2_down=h_shift_down_1-h_shift_down_2 - - a_up=-(2*h1_up+h2_up)/(h1_up*(h1_up+h2_up)) - b_up=(h2_up+h1_up)/(h1_up*h2_up) - c_up=-h1_up/(h2_up*(h1_up+h2_up)) - - a_down=(2*h1_down+h2_down)/(h1_down*(h1_down+h2_down)) - b_down=-(h2_down+h1_down)/(h1_down*h2_down) - c_down=h1_down/(h2_down*(h1_down+h2_down)) - - du_forward=a_up*u_tensor+b_up*u_shift_up_1+c_up*u_shift_up_2 - du_backward=a_down*u_tensor+b_down*u_shift_down_1+c_down*u_shift_down_2 - du = (1 / 2) * (du_forward + du_backward) - - - if boundary_order==1: - if scheme_order==1: - du[:, 0] = du_forward[:, 0] - du[:, -1] = du_backward[:, -1] - elif scheme_order==2: - du_forward = (-torch.roll(u_tensor, -1) + u_tensor) / \ - (-torch.roll(h_tensor, -1) + h_tensor) - - du_backward = (torch.roll(u_tensor, 1) - u_tensor) / \ - (torch.roll(h_tensor, 1) - h_tensor) - du[:, 0] = du_forward[:, 0] - du[:, 1] = du_forward[:, 1] - du[:, -1] = du_backward[:, -1] - du[:, -2] = du_backward[:, -2] - elif boundary_order==2: - if scheme_order==2: - du[:, 0] = du_forward[:, 0] - du[:, 1] = du_forward[:, 1] - du[:, -1] = du_backward[:, -1] - du[:, -2] = du_backward[:, -2] - elif scheme_order==1: - u_shift_down_1 = torch.roll(u_tensor, 1) - u_shift_down_2 = torch.roll(u_tensor, 2) - u_shift_up_1 = torch.roll(u_tensor, -1) - u_shift_up_2 = torch.roll(u_tensor, -2) - - h_shift_down_1 = torch.roll(h_tensor, 1) - h_shift_down_2 = torch.roll(h_tensor, 2) - h_shift_up_1 = torch.roll(h_tensor, -1) - h_shift_up_2 = torch.roll(h_tensor, -2) - - h1_up=h_shift_up_1-h_tensor - h2_up=h_shift_up_2-h_shift_up_1 - - h1_down=h_tensor-h_shift_down_1 - h2_down=h_shift_down_1-h_shift_down_2 - - - a_up=-(2*h1_up+h2_up)/(h1_up*(h1_up+h2_up)) - b_up=(h2_up+h1_up)/(h1_up*h2_up) - c_up=-h1_up/(h2_up*(h1_up+h2_up)) - - a_down=(2*h1_up+h2_up)/(h1_down*(h1_down+h2_down)) - b_down=-(h2_down+h1_down)/(h1_down*h2_down) - c_down=h1_down/(h2_down*(h1_down+h2_down)) - - - du_forward=a_up*u_tensor+b_up*u_shift_up_1+c_up*u_shift_up_2 - du_backward=a_down*u_tensor+b_down*u_shift_down_1+c_down*u_shift_down_2 - du[:, 0] = du_forward[:, 0] - du[:, -1] = du_backward[:, -1] - - du = torch.transpose(du, 0, axis) - - return du - - - def take_derivative(self, term): - """ - Axiluary function serves for single differential operator resulting field - derivation - - Parameters - ---------- - model : torch.Sequential - Neural network. - term : TYPE - differential operator in conventional form. - - Returns - ------- - der_term : torch.Tensor - resulting field, computed on a grid. - - """ - # it is may be int, function of grid or torch.Tensor - coeff = term[0] - # this one contains product of differential operator - operator_product = term[1] - # float that represents power of the differential term - power = term[2] - # initially it is an ones field - der_term = torch.zeros_like(self.model) + 1 - for j, scheme in enumerate(operator_product): - prod=self.model - if scheme!=[None]: - for axis in scheme: - if axis is None: - continue - h = self.grid[axis] - prod=self.derivative(prod, h, axis, scheme_order=1, boundary_order=1) - der_term = der_term * prod ** power[j] - if callable(coeff) is True: - der_term = coeff(self.grid) * der_term - else: - der_term = coeff * der_term - return der_term - -class Derivative(): - def __init__(self, grid, model): - self.grid = grid - self.model = model - - def set_strategy(self, strategy): - if strategy == 'NN': - return Derivative_NN(self.grid, self.model) - - elif strategy == 'autograd': - return Derivative_autograd(self.grid, self.model) - - elif strategy == 'mat': - return Derivative_mat(self.grid, self.model) - - -class Solution(): - def __init__(self, grid, equal_cls, model, mode): - self.grid = grid - self.prepared_operator = equal_cls.operator_prepare() - self.prepared_bconds = equal_cls.bnd_prepare() - self.model = model - self.mode = mode - if self.mode=='NN': - self.grid_dict = Points_type.grid_sort(self.grid) - self.sorted_grid = torch.cat(list(self.grid_dict.values())) - - def apply_operator(self, operator): - """ - Deciphers equation in a single grid subset to a field. - - Parameters - ---------- - model : torch.Sequential - Neural network. - operator : list - Single (len(subset)==1) operator in input form. See - input_preprocessing.operator_prepare() - - Returns - ------- - total : torch.Tensor - - """ - derivative = Derivative(self.grid, self.model).set_strategy(self.mode).take_derivative - - for term in operator: - dif = derivative(term) - try: - total += dif - except NameError: - total = dif - return total - - def apply_bconds_set(self, operator_set): - """ - Deciphers equation in a whole grid to a field. - Parameters - ---------- - model : torch.Sequential - Neural network. - operator : list - Multiple (len(subset)>=1) operators in input form. See - input_preprocessing.operator_prepare() - Returns - ------- - total : torch.Tensor - """ - field_part = [] - for operator in operator_set: - field_part.append(self.apply_operator(operator)) - field_part = torch.cat(field_part) - return field_part - - def b_op_val_calc(self, bcond): - b_pos = bcond[0] - bop = bcond[1] - truebval = bcond[2].reshape(-1,1) - var = bcond[3] - btype = bcond[4] - if bop == None or bop == [[1, [None], 1]]: - if self.mode == 'NN': - b_op_val = self.model(self.sorted_grid)[:,var].reshape(-1,1) - elif self.mode == 'autograd': - b_op_val = self.model(self.grid)[:,var].reshape(-1,1) - elif self.mode == 'mat': - b_op_val = self.model - else: - if self.mode == 'NN': - b_op_val = self.apply_bconds_set(bop) - elif self.mode == 'autograd' or self.mode == 'mat': - b_op_val = self.apply_operator(bop) - return b_op_val - - def apply_bconds_operator(self): - true_b_val_list = [] - b_val_list = [] - - # we apply no boundary conditions operators if they are all None - - for bcond in self.prepared_bconds: - b_pos = bcond[0] - bop = bcond[1] - truebval = bcond[2].reshape(-1,1) - var = bcond[3] - btype = bcond[4] - if btype == 'boundary values': - true_b_val_list.append(truebval) - b_op_val = self.b_op_val_calc(bcond) - if self.mode == 'mat': - for position in b_pos: - if self.grid.dim() == 1 or min(self.grid.shape) == 1: - b_val_list.append(b_op_val[:, position]) - else: - b_val_list.append(b_op_val[position]) - else: - b_val_list.append(b_op_val[b_pos]) - if btype == 'periodic': - true_b_val_list.append(truebval) - b_op_val = self.b_op_val_calc(bcond) - b_val = b_op_val[b_pos[0]] - for i in range(1, len(b_pos)): - b_val -= b_op_val[b_pos[i]] - b_val_list.append(b_val) - true_b_val = torch.cat(true_b_val_list) - b_val=torch.cat(b_val_list).reshape(-1,1) - - return b_val, true_b_val - - - def l2_loss(self, lambda_bound=10): - if self.mode == 'mat' or self.mode == 'autograd': - if self.prepared_bconds == None: - print('No bconds is not possible, returning infinite loss') - return np.inf - - num_of_eq = len(self.prepared_operator) - if num_of_eq == 1: - op = self.apply_operator(self.prepared_operator[0]) - if self.prepared_bconds == None: - return torch.mean((op) ** 2) - else: - op_list = [] - for i in range(num_of_eq): - op_list.append(self.apply_operator(self.prepared_operator[i])) - op = torch.cat(op_list,1) - if self.prepared_bconds == None: - return torch.sum(torch.mean((op) ** 2, 0)) - - # we apply no boundary conditions operators if they are all None - - b_val, true_b_val = self.apply_bconds_operator() - """ - actually, we can use L2 norm for the operator and L1 for boundary - since L2>L1 and thus, boundary values become not so signifnicant, - so the NN converges faster. On the other hand - boundary conditions is the - crucial thing for all that stuff, so we should increase significance of the - coundary conditions - """ - # l1_lambda = 0.001 - # l1_norm =sum(p.abs().sum() for p in model.parameters()) - # loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2)+ l1_lambda * l1_norm - if self.mode=='mat': - loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2) - else: - loss = torch.sum(torch.mean((op) ** 2, 0)) + lambda_bound * torch.sum(torch.mean((b_val - true_b_val) ** 2, 0)) - return loss - - def weak_loss(self, weak_form, lambda_bound=10): - ''' - Weak solution of O/PDE problem. - - Parameters: - --------- - weak_form: list of basis functions - lambda_bound: const regularization parameter - --------- - ''' - def integration(func, grid, pow='sqrt'): - ''' - Function realize 1-space/multiple integrands, - where func=(L(u)-f)*weak_form subintegrands function and - definite integral parameter is grid - Parameters: - ---------- - func: torch.tensor - grid: torch.tensor - pow: string (sqrt ar abs) power of func points - ---------- - ''' - if grid.shape[-1]==1: - column = -1 - else: - column = -2 - marker = grid[0][column] - index = [0] - result = [] - U = 0 - for i in range(1, len(grid)): - if grid[i][column]==marker or column==-1: - if pow=='sqrt': - U += (grid[i][-1]-grid[i-1][-1]).item()*(func[i]**2+func[i-1]**2)/2 - elif pow=='abs': - U += (grid[i][-1]-grid[i-1][-1]).item()*(func[i]+func[i-1])/2 - else: - result.append(U) - marker = grid[i][column] - index.append(i) - U = 0 - if column == -1: - return U, 0 - else: - result.append(U) - grid = grid[index,:-1] - return result, grid - - if self.mode=='NN': - grid_central = self.grid_dict['central'] - elif self.mode=='autograd': - grid_central = self.grid - if self.mode == 'mat' or self.mode == 'autograd': - if self.prepared_bconds == None: - print('No bconds is not possible, returning infinite loss') - return np.inf - - num_of_eq = len(self.prepared_operator) - if num_of_eq == 1: - op = self.apply_operator(self.prepared_operator[0]) - for i in weak_form: - op = op*(i(grid_central)).reshape(-1,1) - for _ in range(grid_central.shape[-1]): - op, grid_central = integration(op, grid_central) - op_integr = op - if self.prepared_bconds == None: - return op_integr - else: - op_list = [] - for i in range(num_of_eq): - op_list.append(self.apply_operator(self.prepared_operator[i])) - for j in weak_form: - op_list[-1] = op_list[-1]*(j(grid_central)).reshape(-1,1) - for i in range(num_of_eq): - grid_central1 = torch.clone(grid_central) - for k in range(grid_central.shape[-1]): - if k==0: - op_list[i], grid_central1 = integration(op_list[i], grid_central1, pow='sqrt') - else: - op_list[i], grid_central1 = integration(op_list[i], grid_central1, pow='sqrt') - op_integr = torch.cat(op_list) - if self.prepared_bconds == None: - return op_integr - - # we apply no boundary conditions operators if they are all None - - b_val, true_b_val = self.apply_bconds_operator() - """ - actually, we can use L2 norm for the operator and L1 for boundary - since L2>L1 and thus, boundary values become not so signifnicant, - so the NN converges faster. On the other hand - boundary conditions is the - crucial thing for all that stuff, so we should increase significance of the - coundary conditions - """ - loss = torch.sum(op_integr) + lambda_bound * torch.sum(torch.mean((b_val - true_b_val) ** 2, 0)) - - return loss - - def loss_evaluation(self, lambda_bound=10, weak_form=None): - if weak_form == None or weak_form == []: - return self.l2_loss(lambda_bound=lambda_bound) - else: - return self.weak_loss(weak_form, lambda_bound=lambda_bound) - diff --git a/cache.py b/tedeous/cache.py similarity index 99% rename from cache.py rename to tedeous/cache.py index 585277d9..b961582e 100644 --- a/cache.py +++ b/tedeous/cache.py @@ -8,8 +8,8 @@ from torch import Tensor -from metrics import Solution -from input_preprocessing import Equation, EquationMixin +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation, EquationMixin class Model_prepare(Solution): """ diff --git a/config.py b/tedeous/config.py similarity index 100% rename from config.py rename to tedeous/config.py diff --git a/finite_diffs.py b/tedeous/finite_diffs.py similarity index 100% rename from finite_diffs.py rename to tedeous/finite_diffs.py diff --git a/input_preprocessing.py b/tedeous/input_preprocessing.py similarity index 99% rename from input_preprocessing.py rename to tedeous/input_preprocessing.py index 4affe84a..88a34f80 100644 --- a/input_preprocessing.py +++ b/tedeous/input_preprocessing.py @@ -2,8 +2,8 @@ import numpy as np from typing import Union -from points_type import Points_type -from finite_diffs import Finite_diffs +from tedeous.points_type import Points_type +from tedeous.finite_diffs import Finite_diffs class EquationMixin(): """ diff --git a/tedeous/metrics.py b/tedeous/metrics.py new file mode 100644 index 00000000..5a87c4c2 --- /dev/null +++ b/tedeous/metrics.py @@ -0,0 +1,535 @@ +import torch +import numpy as np +from typing import Union + +from tedeous import input_preprocessing +from tedeous import points_type + +flatten_list = lambda t: [item for sublist in t for item in sublist] + + +class DerivativeInt(): + def take_derivative(self, value): + raise NotImplementedError + + +class Derivative_NN(DerivativeInt): + def __init__(self, grid: torch.Tensor, model: torch.nn.Sequential): + """ + Taking numerical derivative for 'NN' method. + + Args: + grid: array of a n-D points. + model: neural network. + + """ + self.grid = grid + self.model = model + + def take_derivative(self, term: Union[list, int, torch.Tensor]) -> torch.Tensor: + """ + Auxiliary function serves for single differential operator resulting field + derivation. + + Args: + term: differential operator in conventional form. + Returns: + der_term: resulting field, computed on a grid. + + """ + # it is may be int, function of grid or torch.Tensor + coeff = term[0] + # this one contains shifted grids (see input_preprocessing module) + shift_grid_list = term[1] + # signs corresponding to a grid + s_order_norm_list = term[2] + # float that represents power of the differential term + power = term[3] + # number of variables in equation + variables = term[4] + # initially it is an ones field + der_term = (torch.zeros_like(self.model(shift_grid_list[0][0])[0:, 0]) + 1).reshape(-1, 1) + + for j, scheme in enumerate(shift_grid_list): + # every shift in grid we should add with corresponding sign, so we start + # from zeros + grid_sum = torch.zeros_like(self.model(scheme[0]))[0:, 0].reshape(-1, 1) + for k, grid in enumerate(scheme): + # and add grid sequentially + grid_sum += (self.model(grid)[0:, variables[j]]).reshape(-1, 1) * s_order_norm_list[j][k] + # Here we want to apply differential operators for every term in the product + der_term = der_term * grid_sum ** power[j] + der_term = coeff * der_term + + return der_term + + +class Derivative_autograd(DerivativeInt): + """ + Taking numerical derivative for 'autograd' method. + """ + + def __init__(self, grid, model): + """ + Taking numerical derivative for 'autograd' method. + + Args: + grid: array of a n-D points. + model: neural network. + """ + self.grid = grid + self.model = model + + + @staticmethod + def nn_autograd_mixed(model: torch.nn.Sequential, points, axis=[0]): + """ + Computes derivative on the grid using autograd method. + + Args: + model: neural network + points: points, where numerical derivative is calculated + axis: smth + + Returns: + gradient_full: smth + """ + points.requires_grad = True + gradient_full = [] + f = model(points).sum(0) + for i in range(len(f)): + fi = f[i] + for ax in axis: + grads, = torch.autograd.grad(fi, points, create_graph=True) + fi = grads[:, ax].sum() + gradient_full.append(grads[:, axis[-1]].reshape(-1, 1)) + gradient_full = torch.hstack(gradient_full) + return gradient_full + + + def take_derivative(self, term) -> torch.Tensor: + """ + Auxiliary function serves for single differential operator resulting field + derivation + + Args: + term: differential operator in conventional form. + + Returns: + der_term: resulting field, computed on a grid. + """ + # it is may be int, function of grid or torch.Tensor + coeff = term[0] + # this one contains shifted grids (see input_preprocessing module) + product = term[1] + # float that represents power of the differential term + power = term[2] + # list that represent using variables + variables = term[3] + # initially it is an ones field + der_term = (torch.zeros_like(self.model(self.grid))[0:, 0] + 1).reshape(-1, 1) + for j, derivative in enumerate(product): + if derivative == [None]: + der = self.model(self.grid)[:, variables[j]].reshape(-1, 1) + else: + der = self.nn_autograd_mixed(self.model, self.grid, axis=derivative)[0:, variables[j]].reshape(-1, 1) + + der_term = der_term * der ** power[j] + + der_term = coeff * der_term + + return der_term + + +class Derivative_mat(DerivativeInt): + def __init__(self, grid, model): + """ + Taking numerical derivative for 'mat' method. + + Args: + grid: array of a n-D points. + model: random matrix. + + """ + self.grid = grid + self.model = model + + @staticmethod + def derivative_1d(model: torch.Tensor, grid: torch.Tensor) -> torch.Tensor: + """ + Computes derivative in one dimension for matrix method. + + Args: + model: random matrix. + grid: array of a n-D points. + + Returns: + du: computed derivative along one dimension. + + """ + u = model.reshape(-1) + x = grid.reshape(-1) + + du = (torch.roll(u, 1) - torch.roll(u, -1)) / (torch.roll(x, 1) - torch.roll(x, -1)) + du[0] = (u[0] - u[1]) / (x[0] - x[1]) + du[-1] = (u[-1] - u[-2]) / (x[-1] - x[-2]) + + du = du.reshape(model.shape) + + return du + + @staticmethod + def derivative(u_tensor: torch.Tensor, h_tensor: torch.Tensor, axis: int, + scheme_order: int = 1, boundary_order: int = 1) -> torch.Tensor: + """ + Computing derivative for 'matrix' method. + + Args: + u_tensor: smth. + h_tensor: smth. + axis: axis along which the derivative is calculated. + scheme_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 + + Returns: + du: computed derivative. + """ + # print('shape=',u_tensor.shape) + if (u_tensor.shape[0] == 1): + du = Derivative_mat.derivative_1d(u_tensor, h_tensor) + return du + + u_tensor = torch.transpose(u_tensor, 0, axis) + h_tensor = torch.transpose(h_tensor, 0, axis) + + if scheme_order == 1: + du_forward = (-torch.roll(u_tensor, -1) + u_tensor) / \ + (-torch.roll(h_tensor, -1) + h_tensor) + + du_backward = (torch.roll(u_tensor, 1) - u_tensor) / \ + (torch.roll(h_tensor, 1) - h_tensor) + du = (1 / 2) * (du_forward + du_backward) + + + if scheme_order == 2: + u_shift_down_1 = torch.roll(u_tensor, 1) + u_shift_down_2 = torch.roll(u_tensor, 2) + u_shift_up_1 = torch.roll(u_tensor, -1) + u_shift_up_2 = torch.roll(u_tensor, -2) + + h_shift_down_1 = torch.roll(h_tensor, 1) + h_shift_down_2 = torch.roll(h_tensor, 2) + h_shift_up_1 = torch.roll(h_tensor, -1) + h_shift_up_2 = torch.roll(h_tensor, -2) + + h1_up = h_shift_up_1 - h_tensor + h2_up = h_shift_up_2 - h_shift_up_1 + + h1_down = h_tensor - h_shift_down_1 + h2_down = h_shift_down_1 - h_shift_down_2 + + a_up = -(2 * h1_up + h2_up) / (h1_up * (h1_up + h2_up)) + b_up = (h2_up + h1_up) / (h1_up * h2_up) + c_up = -h1_up / (h2_up * (h1_up + h2_up)) + + a_down = (2 * h1_down + h2_down) / (h1_down * (h1_down + h2_down)) + b_down = -(h2_down + h1_down) / (h1_down * h2_down) + c_down = h1_down / (h2_down * (h1_down + h2_down)) + + du_forward = a_up * u_tensor + b_up * u_shift_up_1 + c_up * u_shift_up_2 + du_backward = a_down * u_tensor + b_down * u_shift_down_1 + c_down * u_shift_down_2 + du = (1 / 2) * (du_forward + du_backward) + + if boundary_order == 1: + if scheme_order == 1: + du[:, 0] = du_forward[:, 0] + du[:, -1] = du_backward[:, -1] + elif scheme_order == 2: + du_forward = (-torch.roll(u_tensor, -1) + u_tensor) / \ + (-torch.roll(h_tensor, -1) + h_tensor) + + du_backward = (torch.roll(u_tensor, 1) - u_tensor) / \ + (torch.roll(h_tensor, 1) - h_tensor) + du[:, 0] = du_forward[:, 0] + du[:, 1] = du_forward[:, 1] + du[:, -1] = du_backward[:, -1] + du[:, -2] = du_backward[:, -2] + elif boundary_order == 2: + if scheme_order == 2: + du[:, 0] = du_forward[:, 0] + du[:, 1] = du_forward[:, 1] + du[:, -1] = du_backward[:, -1] + du[:, -2] = du_backward[:, -2] + elif scheme_order == 1: + u_shift_down_1 = torch.roll(u_tensor, 1) + u_shift_down_2 = torch.roll(u_tensor, 2) + u_shift_up_1 = torch.roll(u_tensor, -1) + u_shift_up_2 = torch.roll(u_tensor, -2) + + h_shift_down_1 = torch.roll(h_tensor, 1) + h_shift_down_2 = torch.roll(h_tensor, 2) + h_shift_up_1 = torch.roll(h_tensor, -1) + h_shift_up_2 = torch.roll(h_tensor, -2) + + h1_up = h_shift_up_1 - h_tensor + h2_up = h_shift_up_2 - h_shift_up_1 + + h1_down = h_tensor - h_shift_down_1 + h2_down = h_shift_down_1 - h_shift_down_2 + + a_up = -(2 * h1_up + h2_up) / (h1_up * (h1_up + h2_up)) + b_up = (h2_up + h1_up) / (h1_up * h2_up) + c_up = -h1_up / (h2_up * (h1_up + h2_up)) + + a_down = (2 * h1_up + h2_up) / (h1_down * (h1_down + h2_down)) + b_down = -(h2_down + h1_down) / (h1_down * h2_down) + c_down = h1_down / (h2_down * (h1_down + h2_down)) + + du_forward = a_up * u_tensor + b_up * u_shift_up_1 + c_up * u_shift_up_2 + du_backward = a_down * u_tensor + b_down * u_shift_down_1 + c_down * u_shift_down_2 + du[:, 0] = du_forward[:, 0] + du[:, -1] = du_backward[:, -1] + + du = torch.transpose(du, 0, axis) + + return du + + def take_derivative(self, term) -> torch.Tensor: + """ + Auxiliary function serves for single differential operator resulting field + derivation. + + Args: + term: differential operator in conventional form. + + Returns: + der_term: resulting field, computed on a grid. + """ + # it is may be int, function of grid or torch.Tensor + coeff = term[0] + # this one contains product of differential operator + operator_product = term[1] + # float that represents power of the differential term + power = term[2] + # initially it is an ones field + der_term = torch.zeros_like(self.model) + 1 + for j, scheme in enumerate(operator_product): + prod = self.model + if scheme != [None]: + for axis in scheme: + if axis is None: + continue + h = self.grid[axis] + prod = self.derivative(prod, h, axis, scheme_order=1, boundary_order=1) + der_term = der_term * prod ** power[j] + if callable(coeff) is True: + der_term = coeff(self.grid) * der_term + else: + der_term = coeff * der_term + return der_term + + +class Derivative(): + def __init__(self, grid, model): + """ + Interface for taking numerical derivative due to chosen calculation method. + + Args: + grid: array of a n-D points. + model: neural network or matrix depending on the selected mode. + """ + self.grid = grid + self.model = model + + def set_strategy(self, strategy: str) -> Union[Derivative_NN, Derivative_autograd, Derivative_mat]: + """ + Setting the calculation method. + + Args: + strategy: Calculation method. (i.e., "NN", "autograd", "mat"). + + Returns: + prepared_equation: equation in input form for a given calculation method. + """ + if strategy == 'NN': + return Derivative_NN(self.grid, self.model) + + elif strategy == 'autograd': + return Derivative_autograd(self.grid, self.model) + + elif strategy == 'mat': + return Derivative_mat(self.grid, self.model) + + +class Solution(): + def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + model: Union[torch.nn.Sequential, torch.Tensor], mode: str): + """ + Interface for computing loss due to chosen calculation method. + + Args: + grid: array of a n-D points. + equal_cls: object from input_preprocessing (see input_preprocessing.Equation). + model: neural network or matrix depending on the selected mode. + mode: a given calculation method. + + """ + self.grid = grid + self.prepared_operator = equal_cls.operator_prepare() + self.prepared_bconds = equal_cls.bnd_prepare() + self.model = model + self.mode = mode + + def apply_operator(self, operator: list) -> torch.Tensor: + """ + Deciphers equation in a single grid subset to a field. + + Args: + operator: Single (len(subset)==1) operator in input form. See + input_preprocessing.operator_prepare() + + Returns: + total: smth + + """ + derivative = Derivative(self.grid, self.model).set_strategy(self.mode).take_derivative + + for term in operator: + dif = derivative(term) + try: + total += dif + except NameError: + total = dif + return total + + def apply_bconds_set(self, operator_set: list) -> torch.Tensor: + """ + Deciphers equation in a whole grid to a field. + + Args: + operator_set: Multiple (len(subset)>=1) operators in input form. See + input_preprocessing.operator_prepare(). + + Returns: + field_part: smth + """ + field_part = [] + for operator in operator_set: + field_part.append(self.apply_operator(operator)) + field_part = torch.cat(field_part) + return field_part + + def b_op_val_calc(self, bcond: list) -> torch.Tensor: + """ + Auxiliary function. Serves only to evaluate operator on the boundary. + + Args: + bcond: terms of prepared boundary conditions (see input_preprocessing.bnd_prepare) in input form. + + Returns: + b_op_val: calculated operator on the boundary. + """ + b_pos = bcond[0] + bop = bcond[1] + truebval = bcond[2].reshape(-1, 1) + var = bcond[3] + btype = bcond[4] + if bop == None or bop == [[1, [None], 1]]: + if self.mode == 'NN': + grid_dict = points_type.Points_type.grid_sort(self.grid) + sorted_grid = torch.cat(list(grid_dict.values())) + b_op_val = self.model(sorted_grid)[:, var].reshape(-1, 1) + elif self.mode == 'autograd': + b_op_val = self.model(self.grid)[:, var].reshape(-1, 1) + elif self.mode == 'mat': + b_op_val = self.model + else: + if self.mode == 'NN': + b_op_val = self.apply_bconds_set(bop) + elif self.mode == 'autograd' or self.mode == 'mat': + b_op_val = self.apply_operator(bop) + return b_op_val + + def apply_bconds_operator(self) -> tuple[torch.Tensor, torch.Tensor]: + """ + Auxiliary function. Serves only to evaluate boundary values and true boundary values. + + Returns: + b_val: calculated model boundary values. + true_b_val: true grid boundary values. + """ + true_b_val_list = [] + b_val_list = [] + + # we apply no boundary conditions operators if they are all None + + for bcond in self.prepared_bconds: + b_pos = bcond[0] + bop = bcond[1] + truebval = bcond[2].reshape(-1, 1) + var = bcond[3] + btype = bcond[4] + if btype == 'boundary values': + true_b_val_list.append(truebval) + b_op_val = self.b_op_val_calc(bcond) + if self.mode == 'mat': + for position in b_pos: + if self.grid.dim() == 1 or min(self.grid.shape) == 1: + b_val_list.append(b_op_val[:, position]) + else: + b_val_list.append(b_op_val[position]) + else: + b_val_list.append(b_op_val[b_pos]) + if btype == 'periodic': + true_b_val_list.append(truebval) + b_op_val = self.b_op_val_calc(bcond) + b_val = b_op_val[b_pos[0]] + for i in range(1, len(b_pos)): + b_val -= b_op_val[b_pos[i]] + b_val_list.append(b_val) + true_b_val = torch.cat(true_b_val_list) + b_val = torch.cat(b_val_list).reshape(-1, 1) + + return b_val, true_b_val + + def loss_evaluation(self, lambda_bound: int = 10) -> torch.Tensor: + """ + Computes loss. + + Args: + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + + Returns: + loss: loss. + """ + if self.mode == 'mat' or self.mode == 'autograd': + if self.prepared_bconds == None: + print('No bconds is not possible, returning infinite loss') + return np.inf + + num_of_eq = len(self.prepared_operator) + if num_of_eq == 1: + op = self.apply_operator(self.prepared_operator[0]) + if self.prepared_bconds == None: + return torch.mean((op) ** 2) + else: + op_list = [] + for i in range(num_of_eq): + op_list.append(self.apply_operator(self.prepared_operator[i])) + + op = torch.cat(op_list, 1) + if self.prepared_bconds == None: + return torch.sum(torch.mean((op) ** 2, 0)) + + # we apply no boundary conditions operators if they are all None + + b_val, true_b_val = self.apply_bconds_operator() + + if self.mode == 'mat': + loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2) + else: + loss = torch.sum(torch.mean((op) ** 2, 0)) + lambda_bound * torch.sum( + torch.mean((b_val - true_b_val) ** 2, 0)) + + return loss diff --git a/points_type.py b/tedeous/points_type.py similarity index 100% rename from points_type.py rename to tedeous/points_type.py diff --git a/solver.py b/tedeous/solver.py similarity index 98% rename from solver.py rename to tedeous/solver.py index eacc22ca..e4e43e9b 100644 --- a/solver.py +++ b/tedeous/solver.py @@ -3,11 +3,10 @@ import matplotlib.pyplot as plt from matplotlib import cm -import input_preprocessing -from cache import Model_prepare +from tedeous import input_preprocessing +from tedeous.cache import Model_prepare from typing import Union import os -import sys import datetime @@ -54,7 +53,7 @@ class Solver(Model_prepare): High-level interface for solving equations. """ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, - input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], model: torch.nn.Sequential, mode: str): """ High-level interface for solving equations. From 6a111b55ec3ca6f2d3a1ce923e1af04a13676875 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 18 Nov 2022 15:18:53 +0300 Subject: [PATCH 089/225] Update cache.rst --- docs/source/modules/cache.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/modules/cache.rst b/docs/source/modules/cache.rst index 364566da..66957d2a 100644 --- a/docs/source/modules/cache.rst +++ b/docs/source/modules/cache.rst @@ -1,6 +1,6 @@ Cache ===== -.. automodule:: cache +.. autoclass:: tedeous.cache.Model_prepare :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From c81b1ab1df791160cd65383f0bb36991ef794c65 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 18 Nov 2022 15:30:22 +0300 Subject: [PATCH 090/225] Update cache.rst --- docs/source/modules/cache.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/cache.rst b/docs/source/modules/cache.rst index 66957d2a..c5a2f7b6 100644 --- a/docs/source/modules/cache.rst +++ b/docs/source/modules/cache.rst @@ -1,6 +1,9 @@ +===== Cache ===== -.. autoclass:: tedeous.cache.Model_prepare +Model prepare +~~~~~~~~~~~~~ +.. automodule:: tedeous.cache.Model_prepare :members: :no-undoc-members: From 0fe17a44998fd3807e6fad7ef3bd35733fc6960a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 18 Nov 2022 15:43:02 +0300 Subject: [PATCH 091/225] Update Makefile --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index d0c3cbf1..985a9a25 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -4,7 +4,7 @@ # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build +SPHINXBUILD = python3 -msphinx SOURCEDIR = source BUILDDIR = build From 1fd24f4f82281df39bee093e2969351d70fe8131 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 18 Nov 2022 16:02:18 +0300 Subject: [PATCH 092/225] Update metrics.rst --- docs/source/modules/metrics.rst | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/source/modules/metrics.rst b/docs/source/modules/metrics.rst index 1a9676b2..8ca710ea 100644 --- a/docs/source/modules/metrics.rst +++ b/docs/source/modules/metrics.rst @@ -1,5 +1,8 @@ Metrics ======= -.. automodule:: metrics - :members: - :no-undoc-members: \ No newline at end of file + +class Derivative_NN +~~~~~~~~~~~~~~~~~~~ + +.. autoclass:: tedeous.metrics.Derivative_NN + From 611b8071696ea8854d2df503f987d7606c792a26 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 18 Nov 2022 16:02:46 +0300 Subject: [PATCH 093/225] Update Makefile --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 985a9a25..d0c3cbf1 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -4,7 +4,7 @@ # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= -SPHINXBUILD = python3 -msphinx +SPHINXBUILD ?= sphinx-build SOURCEDIR = source BUILDDIR = build From b3915fd651bfeacf63529a591a1b58556e68cc08 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 2 Dec 2022 16:06:39 +0300 Subject: [PATCH 094/225] Paper stuff --- examples/example_schrodinger.py | 6 +- examples/example_weak_Schrodinger.py | 415 +++++++++++++------------ tedeous/cache.py | 9 +- tedeous/metrics.py | 126 +++++++- tedeous/solver.py | 10 +- test.ipynb | 434 +++++++++++++++++---------- 6 files changed, 617 insertions(+), 383 deletions(-) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 6a5c3e26..388f9d12 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -215,8 +215,8 @@ start = time.time() model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, + save_always=False,no_improvement_patience=500,print_every = None,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) @@ -234,4 +234,4 @@ result.extend(res_i) df = pd.DataFrame(res_i) -df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file +df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=True.csv',index=False) \ No newline at end of file diff --git a/examples/example_weak_Schrodinger.py b/examples/example_weak_Schrodinger.py index ed3b0685..c9dbeeed 100644 --- a/examples/example_weak_Schrodinger.py +++ b/examples/example_weak_Schrodinger.py @@ -2,7 +2,9 @@ import numpy as np import matplotlib.pyplot as plt import scipy +import pandas as pd +import time import os import sys @@ -11,211 +13,234 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.cache import Model_prepare +from tedeous.input_preprocessing import Equation +result = [] device = torch.device('cpu') +res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} +grd = [50] +for n in grd: + for i in range(10): + + x_grid = np.linspace(-5,5,n+1) + t_grid = np.linspace(0,np.pi/2,n+1) + + x = torch.from_numpy(x_grid) + t = torch.from_numpy(t_grid) + + grid = torch.cartesian_prod(x, t).float() + + grid.to(device) + + """ + To solve schrodinger equation we have to solve system because of its complexity. + Both for the operator and for boundary and initial conditions. + The system of boundary and initial conditions is written as follows: + bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) + etc... + For periodic bconds you need to set parameter bnd_type = 'periodic'. + For 'periodic' you don't need to set bnd_val. + In this case condition will be written as follows: + bnd1_left = ... + bnd1_right = ... + bnd1 = [bnd1_left, bnd1_right] + Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. + bnd_type is not necessary, default = 'boundary values'. + bnd, bnd_val are essentials for setting parameters bconds. + Eventually, whole list of bconds will be written: + bconds = [[bnd1,...,...], etc...] + """ + ## BOUNDARY AND INITIAL CONDITIONS + fun = lambda x: 2/np.cosh(x) + + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + + + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) + + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + + + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] + + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + + + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] + + bop3_real = { + 'du/dx': + { + 'coeff': 1, + 'du/dx': [0], + 'pow': 1, + 'var': 0 + } + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + + bop3_imag = { + 'dv/dx': + { + 'coeff': 1, + 'dv/dx': [0], + 'pow': 1, + 'var': 1 + } + } -x_grid = np.linspace(-5,5,41) -t_grid = np.linspace(0,np.pi/2,41) - -x = torch.from_numpy(x_grid) -t = torch.from_numpy(t_grid) - -grid = torch.cartesian_prod(x, t).float() - -grid.to(device) - -""" -To solve schrodinger equation we have to solve system because of its complexity. -Both for the operator and for boundary and initial conditions. -The system of boundary and initial conditions is written as follows: -bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) -etc... -For periodic bconds you need to set parameter bnd_type = 'periodic'. -For 'periodic' you don't need to set bnd_val. -In this case condition will be written as follows: -bnd1_left = ... -bnd1_right = ... -bnd1 = [bnd1_left, bnd1_right] -Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. -bnd_type is not necessary, default = 'boundary values'. -bnd, bnd_val are essentials for setting parameters bconds. -Eventually, whole list of bconds will be written: -bconds = [[bnd1,...,...], etc...] -""" -## BOUNDARY AND INITIAL CONDITIONS -fun = lambda x: 2/np.cosh(x) - -# u(x,0) = 2sech(x), v(x,0) = 0 -bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() -bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - - -# u(x,0) = 2sech(x) -bndval1_real = fun(bnd1_real[:,0]) - -# v(x,0) = 0 -bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) - - -# u(-5,t) = u(5,t) -bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_real = [bnd2_real_left,bnd2_real_right] - -# v(-5,t) = v(5,t) -bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_imag = [bnd2_imag_left,bnd2_imag_right] - - -# du/dx (-5,t) = du/dx (5,t) -bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_real = [bnd3_real_left, bnd3_real_right] -bop3_real = { - 'du/dx': + bcond_type = 'periodic' + + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] + + ''' + schrodinger equation: + i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 + real part: + du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v + imag part: + dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u + u = var:0 + v = var:1 + ''' + + schrodinger_eq_real = { + 'du/dt': { - 'coeff': 1, - 'du/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [1], + 'power': 1, 'var': 0 - } -} -# dv/dx (-5,t) = dv/dx (5,t) -bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_imag = [bnd3_imag_left,bnd3_imag_right] - -bop3_imag = { - 'dv/dx': + }, + '1/2*d2v/dx2': + { + 'const': 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 1 + }, + 'v * u**2': { - 'coeff': 1, - 'dv/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [1, 0] + }, + 'v**3': + { + 'const': 1, + 'term': [None], + 'power': 3, 'var': 1 } -} - - -bcond_type = 'periodic' - -bconds = [[bnd1_real, bndval1_real, 0], - [bnd1_imag, bndval1_imag, 1], - [bnd2_real, 0, bcond_type], - [bnd2_imag, 1, bcond_type], - [bnd3_real, bop3_real, bcond_type], - [bnd3_imag, bop3_imag, bcond_type]] - -''' -schrodinger equation: -i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 -real part: -du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v -imag part: -dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u -u = var:0 -v = var:1 -''' - -schrodinger_eq_real = { - 'du/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 0 - }, - '1/2*d2v/dx2': - { - 'const': 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 1 - }, - 'v * u**2': - { - 'const': 1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [1, 0] - }, - 'v**3': - { - 'const': 1, - 'term': [None], - 'power': 3, - 'var': 1 - } -} -schrodinger_eq_imag = { - 'dv/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 1 - }, - '-1/2*d2u/dx2': - { - 'const': - 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 0 - }, - '-u * v ** 2': - { - 'const': -1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [0, 1] - }, - '-u ** 3': - { - 'const': -1, - 'term': [None], - 'power': 3, - 'var': 0 } + schrodinger_eq_imag = { + 'dv/dt': + { + 'const': 1, + 'term': [1], + 'power': 1, + 'var': 1 + }, + '-1/2*d2u/dx2': + { + 'const': - 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 0 + }, + '-u * v ** 2': + { + 'const': -1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [0, 1] + }, + '-u ** 3': + { + 'const': -1, + 'term': [None], + 'power': 3, + 'var': 0 + } -} - -schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] - -model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - #torch.nn.Linear(100, 100), for more accurate - #torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) - -def v(grid): - return torch.cos(grid[:,0] + grid[:,1]) # torch.ones_like(grid[:,0]) + torch.cos(grid[:,0] + grid[:,1]) # for more accurate in more time - -weak_form=[v] - -equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') - -img_dir=os.path.join(os.path.dirname( __file__ ), 'schroedinger_weak_img') - -if not(os.path.isdir(img_dir)): - os.mkdir(img_dir) + } -model = Solver(grid, equation, model, 'autograd', weak_form=weak_form).solve(lambda_bound=1, verbose=1, learning_rate=0.9, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=10,loss_oscillation_window=10, print_every=10, optimizer_mode='LBFGS',step_plot_print=False, step_plot_save=True, image_save_dir=img_dir) \ No newline at end of file + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + + model = torch.nn.Sequential( + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + #torch.nn.Linear(100, 100), for more accurate + #torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) + + def v(grid): + return torch.cos(grid[:,0] + grid[:,1]) # torch.ones_like(grid[:,0]) + torch.cos(grid[:,0] + grid[:,1]) # for more accurate in more time + + weak_form=[v] + + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') + + img_dir=os.path.join(os.path.dirname( __file__ ), 'schroedinger_weak_img') + + if not(os.path.isdir(img_dir)): + os.mkdir(img_dir) + start = time.time() + model = Solver(grid, equation, model, 'autograd', weak_form=weak_form).solve(lambda_bound=1, verbose=1, learning_rate=0.09, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, + save_always=False,no_improvement_patience=10,loss_oscillation_window=10, print_every=10, optimizer_mode='LBFGS',step_plot_print=False, step_plot_save=False, image_save_dir=img_dir) + end = time.time() + print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) + + val = model(grid).detach().numpy() + u = val[0:,0] + v = val[0:,1] + n_iter = [i for j in range(len(u))] + N = [n for j in range(len(u))] + time_iter = [end - start for i in range(len(u))] + res_i['n_iter'].extend(n_iter) + res_i['grid'].extend(N) + res_i['v'].extend(v) + res_i['u'].extend(u) + res_i['time'].extend(time_iter) + result.extend(res_i) + +df = pd.DataFrame(res_i) +df.to_csv(f'benchmarking_data/schrodinger_weak_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file diff --git a/tedeous/cache.py b/tedeous/cache.py index b961582e..7a278352 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -40,7 +40,7 @@ def randomize_params(m): return randomize_params - def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/', + def cache_lookup(self, lambda_bound: float = 0.001, weak_form: None = None, cache_dir: str = '../cache/', nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: ''' Looking for a saved cache. @@ -109,7 +109,7 @@ def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/' continue # model[0] = torch.nn.Linear(prepared_grid.shape[-1], model[0].out_features) # model.eval() - l=self.loss_evaluation(lambda_bound=lambda_bound) + l=self.loss_evaluation(lambda_bound=lambda_bound, weak_form = weak_form) if l Union[ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, cache_verbose: bool,model_randomize_parameter: Union[float, None], - cache_model: torch.nn.Sequential) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: + cache_model: torch.nn.Sequential, weak_form: None = None) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: """ Restores the model from the cache and uses it for retraining. @@ -266,6 +266,7 @@ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, model_randomize_parameter: Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. cache_model: cached model + weak_form: weak form of differential equation Returns: @@ -301,7 +302,7 @@ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, equal = Equation(NN_grid, operator_NN, self.equal_cls.bconds).set_strategy('NN') model_cls = Model_prepare(NN_grid, equal, cache_model, 'NN') - cache_checkpoint, min_loss = model_cls.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound) + cache_checkpoint, min_loss = model_cls.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound, weak_form = weak_form) prepared_model, optimizer_state = model_cls.cache_retrain(cache_checkpoint, cache_verbose=cache_verbose) prepared_model.apply(r) diff --git a/tedeous/metrics.py b/tedeous/metrics.py index 5a87c4c2..665fb34c 100644 --- a/tedeous/metrics.py +++ b/tedeous/metrics.py @@ -493,16 +493,7 @@ def apply_bconds_operator(self) -> tuple[torch.Tensor, torch.Tensor]: return b_val, true_b_val - def loss_evaluation(self, lambda_bound: int = 10) -> torch.Tensor: - """ - Computes loss. - - Args: - lambda_bound: an arbitrary chosen constant, influence only convergence speed. - - Returns: - loss: loss. - """ + def l2_loss(self, lambda_bound=10): if self.mode == 'mat' or self.mode == 'autograd': if self.prepared_bconds == None: print('No bconds is not possible, returning infinite loss') @@ -517,7 +508,6 @@ def loss_evaluation(self, lambda_bound: int = 10) -> torch.Tensor: op_list = [] for i in range(num_of_eq): op_list.append(self.apply_operator(self.prepared_operator[i])) - op = torch.cat(op_list, 1) if self.prepared_bconds == None: return torch.sum(torch.mean((op) ** 2, 0)) @@ -525,11 +515,123 @@ def loss_evaluation(self, lambda_bound: int = 10) -> torch.Tensor: # we apply no boundary conditions operators if they are all None b_val, true_b_val = self.apply_bconds_operator() - + """ + actually, we can use L2 norm for the operator and L1 for boundary + since L2>L1 and thus, boundary values become not so signifnicant, + so the NN converges faster. On the other hand - boundary conditions is the + crucial thing for all that stuff, so we should increase significance of the + coundary conditions + """ + # l1_lambda = 0.001 + # l1_norm =sum(p.abs().sum() for p in model.parameters()) + # loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2)+ l1_lambda * l1_norm if self.mode == 'mat': loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2) else: loss = torch.sum(torch.mean((op) ** 2, 0)) + lambda_bound * torch.sum( torch.mean((b_val - true_b_val) ** 2, 0)) + return loss + + def weak_loss(self, weak_form, lambda_bound=10): + ''' + Weak solution of O/PDE problem. + Parameters: + --------- + weak_form: list of basis functions + lambda_bound: const regularization parameter + --------- + ''' + + def integration(func, grid, pow='sqrt'): + ''' + Function realize 1-space/multiple integrands, + where func=(L(u)-f)*weak_form subintegrands function and + definite integral parameter is grid + Parameters: + ---------- + func: torch.tensor + grid: torch.tensor + pow: string (sqrt ar abs) power of func points + ---------- + ''' + if grid.shape[-1] == 1: + column = -1 + else: + column = -2 + marker = grid[0][column] + index = [0] + result = [] + U = 0 + for i in range(1, len(grid)): + if grid[i][column] == marker or column == -1: + if pow == 'sqrt': + U += (grid[i][-1] - grid[i - 1][-1]).item() * (func[i] ** 2 + func[i - 1] ** 2) / 2 + elif pow == 'abs': + U += (grid[i][-1] - grid[i - 1][-1]).item() * (func[i] + func[i - 1]) / 2 + else: + result.append(U) + marker = grid[i][column] + index.append(i) + U = 0 + if column == -1: + return U, 0 + else: + result.append(U) + grid = grid[index, :-1] + return result, grid + + if self.mode == 'NN': + grid_central = self.grid_dict['central'] + elif self.mode == 'autograd': + grid_central = self.grid + if self.mode == 'mat' or self.mode == 'autograd': + if self.prepared_bconds == None: + print('No bconds is not possible, returning infinite loss') + return np.inf + + num_of_eq = len(self.prepared_operator) + if num_of_eq == 1: + op = self.apply_operator(self.prepared_operator[0]) + for i in weak_form: + op = op * (i(grid_central)).reshape(-1, 1) + for _ in range(grid_central.shape[-1]): + op, grid_central = integration(op, grid_central) + op_integr = op + if self.prepared_bconds == None: + return op_integr + else: + op_list = [] + for i in range(num_of_eq): + op_list.append(self.apply_operator(self.prepared_operator[i])) + for j in weak_form: + op_list[-1] = op_list[-1] * (j(grid_central)).reshape(-1, 1) + for i in range(num_of_eq): + grid_central1 = torch.clone(grid_central) + for k in range(grid_central.shape[-1]): + if k == 0: + op_list[i], grid_central1 = integration(op_list[i], grid_central1, pow='sqrt') + else: + op_list[i], grid_central1 = integration(op_list[i], grid_central1, pow='sqrt') + op_integr = torch.cat(op_list) + if self.prepared_bconds == None: + return op_integr + + # we apply no boundary conditions operators if they are all None + + b_val, true_b_val = self.apply_bconds_operator() + """ + actually, we can use L2 norm for the operator and L1 for boundary + since L2>L1 and thus, boundary values become not so signifnicant, + so the NN converges faster. On the other hand - boundary conditions is the + crucial thing for all that stuff, so we should increase significance of the + coundary conditions + """ + loss = torch.sum(op_integr) + lambda_bound * torch.sum(torch.mean((b_val - true_b_val) ** 2, 0)) return loss + + def loss_evaluation(self, lambda_bound=10, weak_form=None): + if weak_form == None or weak_form == []: + return self.l2_loss(lambda_bound=lambda_bound) + else: + return self.weak_loss(weak_form, lambda_bound=lambda_bound) \ No newline at end of file diff --git a/tedeous/solver.py b/tedeous/solver.py index e4e43e9b..48f56e6a 100644 --- a/tedeous/solver.py +++ b/tedeous/solver.py @@ -54,7 +54,7 @@ class Solver(Model_prepare): """ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], - model: torch.nn.Sequential, mode: str): + model: torch.nn.Sequential, mode: str, weak_form: None = None): """ High-level interface for solving equations. @@ -69,6 +69,7 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa Calculation method. (i.e., "NN", "autograd", "mat"). """ super().__init__(grid, equal_cls, model, mode) + self.weak_form = weak_form def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: @@ -258,13 +259,14 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea lambda_bound=lambda_bound, cache_verbose=cache_verbose, model_randomize_parameter=model_randomize_parameter, - cache_model=cache_model) + cache_model=cache_model, + weak_form = self.weak_form) optimizer = self.optimizer_choice(optimizer_mode, learning_rate) if True: # if not use_cache: - min_loss = self.loss_evaluation(lambda_bound=lambda_bound) + min_loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) save_cache = False @@ -283,7 +285,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea def closure(): nonlocal cur_loss optimizer.zero_grad() - loss = self.loss_evaluation(lambda_bound=lambda_bound) + loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) loss.backward() cur_loss = loss.item() diff --git a/test.ipynb b/test.ipynb index ea40f9c9..e3eb42e1 100644 --- a/test.ipynb +++ b/test.ipynb @@ -14,12 +14,13 @@ "import scipy\n", "from scipy.io import loadmat\n", "import seaborn as sns\n", - "from points_type import *\n", + "from tedeous.points_type import *\n", "from matplotlib import cm\n", - "from input_preprocessing import *\n", + "from tedeous.input_preprocessing import *\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", - "from metrics import *\n", + "from tedeous.metrics import *\n", + "from scipy.interpolate import interp1d\n", "%load_ext autoreload\n", "%autoreload 2" ] @@ -29,8 +30,11 @@ "execution_count": 2, "outputs": [], "source": [ - "import sys\n", - "import os" + "# prepares test data (exact solution)\n", + "test_data = loadmat('examples/benchmarking_data/schrodinger_test.mat')\n", + "data = test_data['uu'].reshape(-1, 1)\n", + "u = np.real(data).reshape(-1)\n", + "v = np.imag(data).reshape(-1)" ], "metadata": { "collapsed": false @@ -38,28 +42,17 @@ }, { "cell_type": "code", - "execution_count": 5, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 6, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 228, + "execution_count": 3, "outputs": [], "source": [ - "test_data = loadmat('examples/benchmarking_data/schrodinger_test.mat')" + "# grid\n", + "x_grid = np.linspace(-5,5,256)\n", + "t_grid = np.linspace(0,np.pi/2,201)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()" ], "metadata": { "collapsed": false @@ -67,19 +60,23 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "outputs": [ { "data": { - "text/plain": "True" + "text/plain": "
", + "image/png": "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\n" }, - "execution_count": 2, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "torch.cuda.is_available()" + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", + " u, cmap=cm.jet,linewidth=0.2, alpha=1)\n", + "plt.savefig('schrod_exact.png')" ], "metadata": { "collapsed": false @@ -87,10 +84,66 @@ }, { "cell_type": "code", - "execution_count": 229, + "execution_count": 12, "outputs": [], "source": [ - "data = test_data['uu'].reshape(-1,1)" + "# transform test data into interpolated values with given grid size and wrap it in pd.dataframe\n", + "def interp_test_data(min, max, grid_test, u, v):\n", + " n = np.arange(min, max + 10, 10)\n", + " dct = {'grid': [], 'interpolated_values_u': [], 'interpolated_values_v': []}\n", + " for number in n:\n", + " x_grid = np.linspace(-5, 5, number + 1)\n", + " t_grid = np.linspace(0, np.pi / 2, number + 1)\n", + "\n", + " x = torch.from_numpy(x_grid)\n", + " t = torch.from_numpy(t_grid)\n", + "\n", + " grid = torch.cartesian_prod(x, t).float()\n", + " interpolated_values_u = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", + " interpolated_values_v = scipy.interpolate.griddata(grid_test, v, grid, method='cubic')\n", + " N = [number for i in range(len(interpolated_values_u))]\n", + " dct['grid'].extend(N)\n", + " dct['interpolated_values_v'].extend(interpolated_values_v)\n", + " dct['interpolated_values_u'].extend(interpolated_values_u)\n", + " test_data = pd.DataFrame(dct)\n", + " return test_data\n", + "\n", + "def experiment_data_prepare(test_data, experiment_data, min, max):\n", + " experiment_result = {'grid': [], 'n_iter': [], 'rmse_u': [],'rmse_v': [], 'nrmse_u': [], 'time': []}\n", + " for grid in range(min+1,max + 10+1,10):\n", + " for n_iter in range(10):\n", + " test_u = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", + " test_v = test_data[test_data['grid'] == grid]['interpolated_values_v'].values\n", + " result_u = experiment_data.query(f'n_iter == {n_iter} and grid == {grid-1}')['u'].values\n", + " result_v = experiment_data.query(f'n_iter == {n_iter} and grid == {grid-1}')['v'].values\n", + " rmse_v = np.sqrt(np.mean((test_v - result_v) ** 2))\n", + " rmse_u = np.sqrt(np.mean((test_u - result_u) ** 2))\n", + " nrmse_u = rmse_u / np.std(result_u)\n", + " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", + " experiment_result['grid'].append(grid+1)\n", + " experiment_result['n_iter'].append(n_iter)\n", + " experiment_result['rmse_v'].append(rmse_v)\n", + " experiment_result['rmse_u'].append(rmse_u)\n", + " experiment_result['nrmse_u'].append(nrmse_u)\n", + " experiment_result['time'].append(time)\n", + " data = pd.DataFrame(experiment_result)\n", + " return data\n", + "\n", + "# def draw_plot(data, min, max, interp, xlabel, ylabel, time = False):\n", + "# x = np.arange(min, max + 10, 10)\n", + "# y = interp\n", + "# f = interp1d(x, y, kind='quadratic')\n", + "# xnew = np.linspace(min ** 2, max ** 2)\n", + "# if time:\n", + "# mean_time = []\n", + "# for g in grd:\n", + "# mean_time.append(np.mean(data.query(f'grid == {g}')['time']))\n", + "# plt.plot(data['grid']*data['grid'], data['time'], marker='o', linestyle='')\n", + "# plt.plot(xnew,f(xnew))\n", + "# else:\n", + "#\n", + "# plt.xlabel(f'{xlabel}')\n", + "# plt.ylabel(f'{ylabel}')" ], "metadata": { "collapsed": false @@ -98,11 +151,15 @@ }, { "cell_type": "code", - "execution_count": 230, + "execution_count": 130, "outputs": [], "source": [ - "u = np.real(data).reshape(-1)\n", - "v = np.imag(data).reshape(-1)" + "schrodinger_cache_false = pd.read_csv(\n", + " 'examples/benchmarking_data/schrodinger_experiment_[10, 20, 30, 40]_cache=False.csv')\n", + "schrodinger_cache_true = pd.read_csv(\n", + " 'examples/benchmarking_data/schrodinger_experiment_[10, 20, 30, 40, 50]_cache=True.csv')\n", + "schrodinger_weak_cache_false = pd.read_csv(\n", + " 'examples/benchmarking_data/schrodinger_weak_experiment_[10, 20, 30, 40, 50]_cache=False.csv')" ], "metadata": { "collapsed": false @@ -110,16 +167,10 @@ }, { "cell_type": "code", - "execution_count": 127, + "execution_count": 150, "outputs": [], "source": [ - "x_grid = np.linspace(-5,5,256)\n", - "t_grid = np.linspace(0,np.pi/2,201)\n", - "\n", - "x = torch.from_numpy(x_grid)\n", - "t = torch.from_numpy(t_grid)\n", - "\n", - "grid_test = torch.cartesian_prod(x, t).float()" + "experiment_data = schrodinger_cache_true" ], "metadata": { "collapsed": false @@ -127,23 +178,25 @@ }, { "cell_type": "code", - "execution_count": 138, + "execution_count": 151, "outputs": [], "source": [ - "n = [10, 20, 30, 40]\n", - "dct = {'grid': [], 'interpolated_values_u': []}\n", + "n = [10, 20, 30, 40, 50]\n", + "dct = {'grid': [], 'interpolated_values_u': [], 'interpolated_values_v': []}\n", "for number in n:\n", - " x_grid = np.linspace(-5,5,number+1)\n", - " t_grid = np.linspace(0,np.pi/2,number+1)\n", + " x_grid = np.linspace(-5, 5, number + 1)\n", + " t_grid = np.linspace(0, np.pi / 2, number + 1)\n", "\n", " x = torch.from_numpy(x_grid)\n", " t = torch.from_numpy(t_grid)\n", "\n", " grid = torch.cartesian_prod(x, t).float()\n", - " interpolated_values = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", - " N = [number for i in range(len(interpolated_values))]\n", + " interpolated_values_u = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", + " interpolated_values_v = scipy.interpolate.griddata(grid_test, v, grid, method='cubic')\n", + " N = [number for i in range(len(interpolated_values_u))]\n", " dct['grid'].extend(N)\n", - " dct['interpolated_values_u'].extend(interpolated_values)\n", + " dct['interpolated_values_v'].extend(interpolated_values_v)\n", + " dct['interpolated_values_u'].extend(interpolated_values_u)\n", "test_data = pd.DataFrame(dct)" ], "metadata": { @@ -152,12 +205,27 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 152, "outputs": [], "source": [ - "experiment_data_10 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[10]_cache=False.csv')\n", - "experiment_data_20_30 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[20, 30]_cache=False.csv')\n", - "experiment_data_40 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[40]_cache=False.csv')" + "experiment_result = {'grid': [], 'n_iter': [], 'rmse_u': [],'rmse_v': [], 'nrmse_u': [], 'time': []}\n", + "for grid in range(10,60,10):\n", + " for n_iter in range(10):\n", + " test_u = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", + " test_v = test_data[test_data['grid'] == grid]['interpolated_values_v'].values\n", + " result_u = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['u'].values\n", + " result_v = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['v'].values\n", + " rmse_v = np.sqrt(np.mean((test_v - result_v) ** 2))\n", + " rmse_u = np.sqrt(np.mean((test_u - result_u) ** 2))\n", + " nrmse_u = rmse_u / np.std(result_u)\n", + " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", + " experiment_result['grid'].append(grid+1)\n", + " experiment_result['n_iter'].append(n_iter)\n", + " experiment_result['rmse_v'].append(rmse_v)\n", + " experiment_result['rmse_u'].append(rmse_u)\n", + " experiment_result['nrmse_u'].append(nrmse_u)\n", + " experiment_result['time'].append(time)\n", + "data = pd.DataFrame(experiment_result)" ], "metadata": { "collapsed": false @@ -165,26 +233,17 @@ }, { "cell_type": "code", - "execution_count": 178, + "execution_count": 153, "outputs": [], "source": [ - "time_list_20 = [2207.342264, 1902.780795 , 2051.769395, 1990.625440, 1669.295443, 1630.366187, 1723.594879, 1735.121449,\n", - " 1989.412900, 1873.436806]\n", - "time_list_30 = [3609.354969, 3564.459932, 3626.499491, 3613.533968, 3818.807240, 3496.345418, 3819.675368,\n", - " 3774.777136, 3795.635416, 3678.129626]\n", - "time_20 = []\n", - "for val in time_list_20:\n", - " time_20_i = [val for i in range(21*21)]\n", - " time_20.append(time_20_i)\n", - "\n", - "time_30 = []\n", - "for val in time_list_30:\n", - " time_30_i = [val for i in range(31*31)]\n", - " time_30.append(time_30_i)\n", - "\n", - "time_20 = np.concatenate(time_20)\n", - "time_30 = np.concatenate(time_30)\n", - "time_20_30 = np.concatenate((time_20, time_30))" + "x = [11**2,21**2,31**2,41**2, 51**2]\n", + "grd = [11, 21, 31, 41, 51]\n", + "mean_time = []\n", + "for g in grd:\n", + " mean_time.append(np.mean(data.query(f'grid == {g}')['time']))\n", + "y = mean_time\n", + "f = interp1d(x, y, kind='quadratic')\n", + "xnew = np.linspace(11**2, 51**2)" ], "metadata": { "collapsed": false @@ -192,10 +251,11 @@ }, { "cell_type": "code", - "execution_count": 179, + "execution_count": 154, "outputs": [], "source": [ - "experiment_data_20_30['time'] = time_20_30" + "h = np.sqrt(data['rmse_v']**2 + data['rmse_u']** 2)\n", + "h_mean = list(set(h))" ], "metadata": { "collapsed": false @@ -203,10 +263,19 @@ }, { "cell_type": "code", - "execution_count": 180, - "outputs": [], + "execution_count": 160, + "outputs": [ + { + "data": { + "text/plain": "array([ 0.02695056, 0.03260382, 0.03420716, 0.03475574, 0.03492699,\n 0.034309 , 0.03360063, 0.03225105, 0.03112513, 0.02763927,\n 0.02636017, 0.07295037, 0.07319679, 0.069523 , 0.06700413,\n 0.06497201, 0.06289575, 0.06013422, 0.05698216, 0.05429713,\n 0.05016175, 0.04734092, 0.19711746, 0.1959615 , 0.19299055,\n 0.19102151, 0.1856891 , 0.17916657, 0.17192488, 0.16365532,\n 0.15508521, 0.14466002, 0.13431266, 0.52562333, 0.51784725,\n 0.49690626, 0.47210287, 0.44857975, 0.43657531, 0.4349855 ,\n 0.43444197, 0.42871452, 0.40757898, 0.37171966, 1.28071124,\n 1.19795536, 0.97999627, 0.71583666, 0.52882028, 0.52176611,\n 0.69010228, 0.92236583, 1.08294288, 1.08007742, 0.90557495,\n 1.99958073, 1.76528341, 0.98348639, -0.58226342, -2.94717013,\n -3.68001601, -0.72895298, 1.52340548, 2.18368684, 2.02259221,\n 1.41672212, 1.31929761, 1.22996009, 0.99357603, 0.70483754,\n 0.4996009 , 0.49408717, 0.68434882, 0.94443911, 1.12189913,\n 1.11994926, 0.93233271, 0.54579459, 0.53729191, 0.51428934,\n 0.48712315, 0.46181896, 0.44922325, 0.44867047, 0.44995444,\n 0.44506521, 0.42373231, 0.3863336 , 0.20492919, 0.20358779,\n 0.20035814, 0.19838182, 0.1929824 , 0.18638219, 0.179006 ,\n 0.17072315, 0.16164543, 0.15096439, 0.14012327, 0.0758565 ,\n 0.07634097, 0.07252998, 0.06995601, 0.0676208 , 0.0653251 ,\n 0.06267691, 0.0591192 , 0.05621535, 0.05225826, 0.0491113 ,\n 0.02802405, 0.03258097, 0.0342325 , 0.03482958, 0.03496365,\n 0.034333 , 0.03373345, 0.03231509, 0.03101465, 0.02774415,\n 0.02632516])" + }, + "execution_count": 160, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "experiment_data = pd.concat([experiment_data_10, experiment_data_20_30, experiment_data_40])" + "test_data[test_data['grid'] == 10]['interpolated_values_u'].values" ], "metadata": { "collapsed": false @@ -214,20 +283,19 @@ }, { "cell_type": "code", - "execution_count": 181, + "execution_count": 159, "outputs": [ { "data": { - "text/plain": " n_iter grid u v time\n0 0 10 0.022888 -0.000939 614.424292\n1 0 10 0.041829 0.003819 614.424292\n2 0 10 0.055094 0.011037 614.424292\n3 0 10 0.062073 0.018570 614.424292\n4 0 10 0.065190 0.025084 614.424292\n... ... ... ... ... ...\n16805 9 40 0.029098 0.052447 7034.597967\n16806 9 40 0.028391 0.053487 7034.597967\n16807 9 40 0.027643 0.054499 7034.597967\n16808 9 40 0.026854 0.055485 7034.597967\n16809 9 40 0.026025 0.056450 7034.597967\n\n[32040 rows x 5 columns]", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
n_itergriduvtime
00100.022888-0.000939614.424292
10100.0418290.003819614.424292
20100.0550940.011037614.424292
30100.0620730.018570614.424292
40100.0651900.025084614.424292
..................
168059400.0290980.0524477034.597967
168069400.0283910.0534877034.597967
168079400.0276430.0544997034.597967
168089400.0268540.0554857034.597967
168099400.0260250.0564507034.597967
\n

32040 rows × 5 columns

\n
" + "text/plain": "array([0.03318459, 0.03364766, 0.03383517, 0.03371757, 0.03333873,\n 0.03277451, 0.03209615, 0.03135902, 0.03058606, 0.02976841,\n 0.02887165, 0.06677186, 0.0662002 , 0.06538975, 0.06419384,\n 0.06257016, 0.06053555, 0.05812705, 0.05538708, 0.05234408,\n 0.04901552, 0.04540801, 0.19914597, 0.19753951, 0.19376087,\n 0.18795174, 0.18044549, 0.17166328, 0.1620211 , 0.15187168,\n 0.14147574, 0.13100529, 0.1205551 , 0.53122693, 0.5263576 ,\n 0.51017344, 0.48611838, 0.4573524 , 0.42635652, 0.39483088,\n 0.36379468, 0.33378702, 0.3050524 , 0.27769578, 1.2959943 ,\n 1.2217739 , 1.102437 , 0.9716155 , 0.84660417, 0.73378575,\n 0.6343204 , 0.5473268 , 0.47129452, 0.4046528 , 0.3459738 ,\n 1.9998935 , 1.7474546 , 1.4606155 , 1.2012131 , 0.98350954,\n 0.8049571 , 0.65894085, 0.53882533, 0.43902826, 0.3551675 ,\n 0.28390872, 1.2962596 , 1.2283022 , 1.1240777 , 1.007602 ,\n 0.89247227, 0.7849685 , 0.6873623 , 0.5999695 , 0.5222267 ,\n 0.45322892, 0.39199322, 0.5316465 , 0.52555156, 0.5083671 ,\n 0.4830518 , 0.45243633, 0.4188378 , 0.38398188, 0.34908372,\n 0.31496936, 0.28216833, 0.25099683, 0.1976403 , 0.19615585,\n 0.1921553 , 0.18582344, 0.17752177, 0.1676597 , 0.15660805,\n 0.14465863, 0.13203526, 0.11891508, 0.10545003, 0.06812572,\n 0.0677467 , 0.06718612, 0.0662303 , 0.06481093, 0.06294531,\n 0.0606842 , 0.05806875, 0.05510348, 0.05174833, 0.04792917,\n 0.03279287, 0.03297252, 0.03323072, 0.03333539, 0.03319079,\n 0.03280437, 0.03224742, 0.03161043, 0.03097117, 0.03037208,\n 0.02981019])" }, - "execution_count": 181, + "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "experiment_data" + "experiment_data.query(f'n_iter == {0} and grid == {10}')['u'].values" ], "metadata": { "collapsed": false @@ -235,21 +303,22 @@ }, { "cell_type": "code", - "execution_count": 191, + "execution_count": 149, "outputs": [ { "data": { - "text/plain": "604.3163278102875" + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAAGtCAYAAAAWKH7cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4nUlEQVR4nO3de1hU173/8c8wgIOXcCnWYKInJwH1NGIh5GDQ1KS2xCQWNYiXllq1YiyZxqdJ1cZIgin1dlKNNSpGTEqstLV4iZISMelJqiVqUFGJDQppT6Sh3lCsIiMwzO+PHOYnB6OMDszAfr+eh+eRvfZeftdMMvvjWnv2NjkcDocAAAAMwMfTBQAAALQXgg8AADAMgg8AADAMgg8AADAMgg8AADAMgg8AADAMgg8AADAMgg8AADAMX08X4E0aGxvV0NAgHx8fmUwmT5cDAABaweFwqLGxUb6+vvLxuf6cDsHnKg0NDSopKfF0GQAA4CZERkbK39//uvsQfK7SlBIjIyNlNps9XA0AAGgNu92ukpKSG872SASfZpqWt8xmM8EHAIAOpjWXqXBxMwAAMAyCDwAAMAyCDwAAMAyCDwAAMAyCDwAAMAyCDwAAMAyCDwAAMAyCDwAAMAyCDwAAMAyPBh+73a5Jkybpueeec247fPiwxo0bp+joaA0fPly5ubnNjtm6davi4+MVFRWlxMREFRcXN+tvyZIlGjJkiKKjo5WamqrTp0+323gAAIB382jwWblypfbv3+/8/cKFC3ryySc1ZswYFRUVacGCBVq0aJGOHDkiSdq3b58yMjK0ePFiFRUVadSoUUpNTVVtba0kKTMzU4WFhdq8ebN2794ti8WitLQ0j4wNAAB4H48Fnz179mjnzp165JFHnNt27typoKAgJScny9fXV3FxcUpISFBOTo4kKTc3VyNHjlRMTIz8/Pw0ZcoUBQcHKz8/39k+ffp0hYWFqXv37po3b5527dqliooKj4wRAAB4F488pLSqqkrz5s3T6tWrlZ2d7dxeVlamfv36Nds3PDxcmzZtkiSVl5dr7NixLdpLS0t18eJFnTx5stnxoaGhCgwM1LFjx9SnT59W12e3229iVAAAtD2HwyGbzebW/qTWPeCztSwWi1v7uxFXztvtHnwaGxs1e/ZsTZ06VQMGDGjWVlNTo4CAgGbbLBaLLl++fMP2mpoaSVLXrl1btDe1tVZJSYlL+wMA0B4cDodWrFih//mf//F0Kdf17//+73r66afbNfy0VrsHn9dee03+/v6aNGlSi7aAgABdvHix2TabzaZu3bo52/9vyrXZbAoODnYGoqbrfa51fGtFRkbKbDa7dAwAAG3N4XCoe/funi7jhrp166aoqKh2Cz52u73VkxbtHny2bdum06dP6/7775ckZ5B57733NGfOHBUWFjbbv7y8XBEREZKkiIgIlZWVtWgfNmyYAgMD1atXL5WXlzuXu86cOaPq6uoWy2c3YjabCT4AAK+0atUqty112Ww2jR49WtIX52eLxeKWftt7qcsV7R58duzY0ez3pq+yL168WOfPn9fLL7+s7OxsJScn68CBA8rLy9Pq1aslSUlJSbJarXrssccUExOjnJwcVVVVKT4+XpKUmJiozMxMRUZGKjg4WAsXLlRsbKz69u3bvoMEAKCNmEymFpd9uIPFYmmTfr2NRy5u/jLBwcF64403tGDBAq1YsUIhISFKS0vTAw88IEmKi4tTenq65s+fr1OnTik8PFxZWVkKCgqSJFmtVjU0NCg5OVk1NTUaPHiwli9f7rkBAQAAr2JyNF3ODdntdh06dEhRUVEsdQEAOr3a2lqNGDFCklRQUNBhZ3xcOX/zyAoAAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYXvWsLgAAOhOHw+G2J6m3hatr8+Y63fm0d4IPAABtxGazOZ+F5e1Gjx7t6RK+lDufI8ZSFwAAMAxmfAAAaAejop6Sr4+fp8toweFwSJLblpLcpaGxXtsPrXZ7vwQfAADaga+Pn3zN/p4uw/BY6gIAAIZB8AEAAIZB8AEAAIZB8AEAAIZB8AEAAIZB8AEAAIZB8AEAAIZB8AEAAIZB8AEAAIZB8AEAAIbBIysAAGgHDfZ6T5fQobTV60XwAQCgjTQ9AFSSth92/wM3jeLq1/FWsdQFAAAMgxkfAADaiMlkcv551Nefkq/Zz4PVdCwN9nrnLNnVr+OtIvgAANAOfM1+8jX7e7oMw2OpCwAAGAbBBwAAGAbBBwAAGIZHrvHZs2ePli1bpk8//VQBAQF69NFHNXv2bFksFqWnp2vz5s3y8/v/F4A999xzmjBhgiRp69atWr16tc6cOaO7775bL7zwgqKjoyVJdrtdv/zlL7Vt2zbV1tbqgQce0EsvvaSvfvWrnhgmAABODY3eeR+fpq+Ku/MCYndoq9er3YPPuXPnNGPGDM2fP19jxozR2bNnNW3aNK1du1YzZ85USUmJMjIy9MQTT7Q4dt++fcrIyFBWVpYGDRqknJwcpaam6v3331dAQIAyMzNVWFiozZs3q0ePHnrhhReUlpamtWvXtvcwAQBoZvsh7uPjDdp9qSskJEQffvihEhMTZTKZVF1drStXrigkJER1dXU6fvy4Bg4ceM1jc3NzNXLkSMXExMjPz09TpkxRcHCw8vPzne3Tp09XWFiYunfvrnnz5mnXrl2qqKhozyECAAAv5ZGlru7du0uSHnroIZ06dUr333+/EhMTVVpaqoaGBq1YsUIHDhxQjx49NHbsWKWkpMjHx0fl5eUaO3Zss77Cw8NVWlqqixcv6uTJk+rXr5+zLTQ0VIGBgTp27Jj69OnT6vrsdrt7BgoAMDQ/Pz/nP869kc1mU2JioiRpy5YtslgsHq7o2vz8/K57bnblvO3R+/js3LlTFy5c0KxZszRz5kxNnTpVsbGxmjRpkpYtW6ZPPvlEVqtVPj4+SklJUU1NjQICApr1YbFYdPnyZdXU1EiSunbt2qK9qa21SkpKbm1gAAB0AFeuXHH++fjx4+rSpYsHq2kfHg0+FotFFotFs2fP1rhx47R06VKtX7/e2T5o0CBNnjxZ+fn5SklJUUBAgGw2W7M+bDabgoODnYGotra2RXu3bt1cqisyMlJms/kmRwUAQMdw9Tlz0KBBLSYXOgq73d7qSYt2Dz4HDx7U888/r+3bt8vf/4s7WNbV1cnPz0+FhYX617/+pYkTJzr3r6urc069RUREqKysrFl/5eXlGjZsmAIDA9WrVy+Vl5c7l7vOnDmj6urqZstfrWE2mwk+AIBO7+pznVHOfe1+cXP//v1ls9m0dOlS1dXV6fPPP9eSJUuUlJQkPz8/LVq0SHv27JHD4VBxcbHWr1/v/Cp7UlKS8vLytHfvXtXX1ys7O1tVVVWKj4+XJCUmJiozM1MVFRW6dOmSFi5cqNjYWPXt27e9hwkAALxQu8/4dOvWTevWrdPChQs1dOhQ9ejRQwkJCbJarfL399fcuXM1f/58nTp1SqGhoXr66ac1evRoSVJcXJzS09Od7eHh4crKylJQUJAkyWq1qqGhQcnJyaqpqdHgwYO1fPny9h4iAADwUiZH052LILvdrkOHDikqKsoQ030AAGOrra3ViBEjJEkFBQUd+hqf1p6/eWQFAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDF9PFwAAAFrP4XDIZrO5pa+r+3FXn5JksVhkMpnc1p87EXwAAOggHA6HrFarPv74Y7f3PXr0aLf1FRkZqZUrV3pl+GGpCwCADsQbw0RHwowPAAAdhMlk0sqVK926LOVwOJx9uwtLXQAAwC1MJpMCAgI8XUaHxVIXAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDI8Enz179mjcuHG67777NHToUGVkZDjvQnn48GGNGzdO0dHRGj58uHJzc5sdu3XrVsXHxysqKkqJiYkqLi52ttntdi1ZskRDhgxRdHS0UlNTdfr06XYdGwAA8F7tHnzOnTunGTNm6Lvf/a7279+vrVu36qOPPtLatWt14cIFPfnkkxozZoyKioq0YMECLVq0SEeOHJEk7du3TxkZGVq8eLGKioo0atQopaamqra2VpKUmZmpwsJCbd68Wbt375bFYlFaWlp7DxEAAHipdg8+ISEh+vDDD5WYmCiTyaTq6mpduXJFISEh2rlzp4KCgpScnCxfX1/FxcUpISFBOTk5kqTc3FyNHDlSMTEx8vPz05QpUxQcHKz8/Hxn+/Tp0xUWFqbu3btr3rx52rVrlyoqKtp7mAAAwAt5ZKmre/fukqSHHnpICQkJ6tmzpxITE1VWVqZ+/fo12zc8PFylpaWSpPLy8i9tv3jxok6ePNmsPTQ0VIGBgTp27FgbjwgAAHQEHn1I6c6dO3XhwgXNmjVLM2fOVK9evVo8eM1isejy5cuSpJqami9tr6mpkSR17dq1RXtTW2vZ7XZXhwIAADzElfO2R4OPxWKRxWLR7NmzNW7cOE2aNEkXL15sto/NZlO3bt0kSQEBAc6LoK9uDw4Odgaiput9rnV8a5WUlLg6FAAA0AG0e/A5ePCgnn/+eW3fvl3+/v6SpLq6Ovn5+Sk8PFyFhYXN9i8vL1dERIQkKSIiQmVlZS3ahw0bpsDAQPXq1avZctiZM2dUXV3dYnnsRiIjI2U2m292iAAAoB3Z7fZWT1q0e/Dp37+/bDabli5dqp/+9Kc6c+aMlixZoqSkJI0YMUJLly5Vdna2kpOTdeDAAeXl5Wn16tWSpKSkJFmtVj322GOKiYlRTk6OqqqqFB8fL0lKTExUZmamIiMjFRwcrIULFyo2NlZ9+/Z1qUaz2UzwAQCgEzI5HA5He/+l5eXlWrhwoUpKStSjRw8lJCTIarXK399fJSUlWrBggY4fP66QkBA99dRTSkxMdB67bds2ZWZm6tSpUwoPD1daWpq+/vWvS5Lq6+v1q1/9Stu3b1dNTY0GDx6sjIwMfeUrX2lVXXa7XYcOHVJUVBTBBwCADsKV87dHgo+3IvgAANDxuHL+5pEVAADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMAg+AADAMDwSfEpLSzV16lTFxsZq6NChmjNnjs6dOydJSk9P18CBAxUdHe382bhxo/PYrVu3Kj4+XlFRUUpMTFRxcbGzzW63a8mSJRoyZIiio6OVmpqq06dPt/v4AACAd2r34GOz2ZSSkqLo6Gj95S9/0dtvv63q6mo9//zzkqSSkhJlZGSouLjY+TNhwgRJ0r59+5SRkaHFixerqKhIo0aNUmpqqmprayVJmZmZKiws1ObNm7V7925ZLBalpaW19xABAICXavfgU1lZqQEDBshqtcrf31/BwcGaMGGCioqKVFdXp+PHj2vgwIHXPDY3N1cjR45UTEyM/Pz8NGXKFAUHBys/P9/ZPn36dIWFhal79+6aN2+edu3apYqKivYcIgAA8FK+7f0X3n333Vq3bl2zbQUFBbr33ntVWlqqhoYGrVixQgcOHFCPHj00duxYpaSkyMfHR+Xl5Ro7dmyzY8PDw1VaWqqLFy/q5MmT6tevn7MtNDRUgYGBOnbsmPr06dPqGu12+60NEgAAtBtXztvtHnyu5nA4tHz5cr3//vvasGGDzp49q9jYWE2aNEnLli3TJ598IqvVKh8fH6WkpKimpkYBAQHN+rBYLLp8+bJqamokSV27dm3R3tTWWiUlJbc2MAAA4JU8FnwuXbqkuXPn6ujRo9qwYYP69++v/v37a+jQoc59Bg0apMmTJys/P18pKSkKCAiQzWZr1o/NZlNwcLAzEDVd73N1e7du3VyqLTIyUmaz+SZHBgAA2pPdbm/1pIVHgs+JEyc0ffp09e7dW5s2bVJISIgk6b333tPZs2c1ceJE5751dXWyWCySpIiICJWVlTXrq7y8XMOGDVNgYKB69eql8vJy53LXmTNnVF1d3Wz5qzXMZjPBBwCATqjdL26+cOGCJk+erPvuu0+vv/66M/RIXyx9LVq0SHv27JHD4VBxcbHWr1/v/FZXUlKS8vLytHfvXtXX1ys7O1tVVVWKj4+XJCUmJiozM1MVFRW6dOmSFi5cqNjYWPXt27e9hwkAALxQu8/4bNmyRZWVlXrnnXe0Y8eOZm3FxcWaO3eu5s+fr1OnTik0NFRPP/20Ro8eLUmKi4tTenq6sz08PFxZWVkKCgqSJFmtVjU0NCg5OVk1NTUaPHiwli9f3s4jBAAA3srkcDgcni7CW9jtdh06dEhRUVEsdQEA0EG4cv7mkRUAAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwbir4nD17VpJUV1en3/72t3rnnXfcWhQAAEBb8HX1gNzcXC1YsECHDh3Syy+/rPz8fJlMJv3973/XU0891RY1AgAAuIXLMz4bNmzQqlWrZLfbtWXLFr366qv63e9+pz/84Q9tUR8AAIDbuDzj889//lNDhw7VwYMH5evrq/vuu0+S9K9//cvtxQEAALiTyzM+gYGB+uyzz1RQUKDY2FhJ0t69e9WzZ0+3FwcAAOBOLs/4TJ06VQkJCZKk3/zmNzpw4IBmzJih9PR0txcHAADgTi4Hn+9973v6xje+IV9fX4WFhencuXPKycnRwIED26I+AAAAt3E5+EhSnz59nH8OCQlRSEiI2woCAABoK9zAEAAAGAbBBwAAGAbBBwAAGAbBBwAAGIbbgk90dLR++MMf6s0333RXlwAAAG51U9/qupaf//znSkhI0KFDh9zVJQAAgFu5bcan6aaGUVFR7uoSAADArW4q+Hz66af6xS9+oR//+Mc6f/68NmzY4O66AAAA3M7l4FNYWKjx48fr/Pnz+vDDD2Wz2bRq1SqtXbu2LeoDAABwG5eDz7Jly7Rs2TItXbpUZrNZYWFhWrt2rTZu3NgW9QEAALiNy8Hns88+07BhwyRJJpNJkhQZGakLFy64tzIAAAA3czn49O7dWwcPHmy2raSkRGFhYW4rCgAAoC24HHxmzJih1NRUvfLKK6qvr1dWVpasVqumTZvW6j5KS0s1depUxcbGaujQoZozZ47OnTsnSTp8+LDGjRun6OhoDR8+XLm5uc2O3bp1q+Lj4xUVFaXExEQVFxc72+x2u5YsWaIhQ4YoOjpaqampOn36tKtDBAAAnZTLwWfkyJF6+eWX9cknn6h3797au3ev5s2bpzFjxrTqeJvNppSUFEVHR+svf/mL3n77bVVXV+v555/XhQsX9OSTT2rMmDEqKirSggULtGjRIh05ckSStG/fPmVkZGjx4sUqKirSqFGjlJqaqtraWklSZmamCgsLtXnzZu3evVsWi0VpaWmuDhEAAHRSN3UDw4ceekgPPfTQTf2FlZWVGjBggKxWq8xms/z9/TVhwgTNmTNHO3fuVFBQkJKTkyVJcXFxSkhIUE5OjgYNGqTc3FyNHDlSMTExkqQpU6Zo48aNys/P19ixY5Wbm6tZs2Y5l93mzZunBx98UBUVFerTp89N1QsAADoPl4NPRUWF1qxZo88//1yNjY3N2tavX3/D4++++26tW7eu2baCggLde++9KisrU79+/Zq1hYeHa9OmTZKk8vJyjR07tkV7aWmpLl68qJMnTzY7PjQ0VIGBgTp27JhLwcdut7d6XwAA4FmunLddDj7PPvus/Pz89MADD8jH59Zu/OxwOLR8+XK9//772rBhg9avX6+AgIBm+1gsFl2+fFmSVFNT86XtNTU1kqSuXbu2aG9qa62SkhJXhwIAADoAl4NPeXm59uzZI4vFckt/8aVLlzR37lwdPXpUGzZsUP/+/RUQEKCLFy82289ms6lbt26SpICAANlsthbtwcHBzkDUdL3PtY5vrcjISJnNZleHBAAAPMBut7d60sLl4DNgwACdPHlSd911l6uHOp04cULTp09X7969tWnTJoWEhEiS+vXrp8LCwmb7lpeXKyIiQpIUERGhsrKyFu3Dhg1TYGCgevXqpfLycudy15kzZ1RdXd1i+exGzGYzwQcAgE7I5eCTlpamKVOm6JFHHtFtt93WrO3HP/7xDY+/cOGCJk+erAceeEALFixotlwWHx+vl19+WdnZ2UpOTtaBAweUl5en1atXS5KSkpJktVr12GOPKSYmRjk5OaqqqlJ8fLwkKTExUZmZmYqMjFRwcLAWLlyo2NhY9e3b19VhAgCATsjl4PPqq6/q8uXLOnr0aLPQ0nQX5xvZsmWLKisr9c4772jHjh3N2oqLi/XGG29owYIFWrFihUJCQpSWlqYHHnhA0hff8kpPT9f8+fN16tQphYeHKysrS0FBQZIkq9WqhoYGJScnq6amRoMHD9by5ctdHSIAAOikTA6Hw+HKAdHR0Xr33XcVGhraVjV5jN1u16FDhxQVFcVSFwAAHYQr52+Xv5b11a9+VV26dLnp4gAAADzF5aWuadOm6amnntIPfvADBQYGNlvi+s///E+3FgcAAOBOLgefF198UZJUVFTUbLvJZNInn3zinqoAAF7F4XC0uJ3IrfQltf7a0NawWCxu7Q+dl8vBp7S0tC3qAAB4KYfDIavVqo8//tjTpXypyMhIrVy5kvCDG2p18Dl58qRuv/12VVZWfuk+vXv3dktRAICb587Zmab+XPweTLtrbGxUbW0ts0i4oVYHn8cff1wHDx7U8OHDZTKZmk1VOhwOlroAwEvYbDaNGDHC02W0q6NHj+rRRx91a58FBQUtHpOEjq/Vwee1116TJP3pT39qs2IAAADaUquDz4wZM3Tw4EHdcccdbVkPAMCNfibJ39NF/B9Ni2beuIhUJ2mJp4tAm2p18PH29V0AQEv+kvy9MmJ4K851nV2rb2DIBV4AAKCja/WMT21trb71rW9ddx+u/wEAAN6s1cHHz8+vVU9fBwAA8FatDj6+vr564okn2rIWAACANsXFzQDQidVJ4oLd1qvzdAFoc60OPqNGjWrLOgAAbnL1P1T5avbN4x/8nVOrv9X10ksvtWUdAAAAbc7lh5QCALzb1bcf8cYbGHqzq29gyG1cOieCDwB0YtzA0FUsb3V2rV7qAgAA6OgIPgAAwDAIPgAAwDAIPgAAwDAIPgAAwDAIPgAAwDAIPgAAwDC4jw8AdGLe+Kyupmq88e5CPKur8yP4AEAnxrO6gOZY6gIAAIbBjA8AdDIWi0UFBQWeLuOabDabRo8eLUnatm2bLBaLhyv6ct5cG24ewQcAOhmTyaSAgABPl3FDFoulQ9SJzoWlLgAAYBgEHwAAYBgEHwAAYBgeDT7nzp1TfHy89u3b59yWnp6ugQMHKjo62vmzceNGZ/vWrVsVHx+vqKgoJSYmqri42Nlmt9u1ZMkSDRkyRNHR0UpNTdXp06fbdUwAAMB7eSz4HDhwQBMmTNCJEyeabS8pKVFGRoaKi4udPxMmTJAk7du3TxkZGVq8eLGKioo0atQopaamqra2VpKUmZmpwsJCbd68Wbt375bFYlFaWlq7jw0AAHgnjwSfrVu3atasWXrmmWeaba+rq9Px48c1cODAax6Xm5urkSNHKiYmRn5+fpoyZYqCg4OVn5/vbJ8+fbrCwsLUvXt3zZs3T7t27VJFRUWbjwkAAHg/j3yd/cEHH1RCQoJ8fX2bhZ/S0lI1NDRoxYoVOnDggHr06KGxY8cqJSVFPj4+Ki8v19ixY5v1FR4ertLSUl28eFEnT55Uv379nG2hoaEKDAzUsWPH1KdPn1bXZ7fbb32QAIAWrv58tdvtfN7CLVz578gjwadnz57X3H7x4kXFxsZq0qRJWrZsmT755BNZrVb5+PgoJSVFNTU1Le75YLFYdPnyZdXU1EiSunbt2qK9qa21SkpKXNofANA6V65ccf75yJEj6tKliwergRF51Q0Mhw4dqqFDhzp/HzRokCZPnqz8/HylpKQoICBANput2TE2m03BwcHOQNR0vc/V7d26dXOpjsjISJnN5pscBQDgy1z9GT1o0CBuYAi3sNvtrZ608Krg89577+ns2bOaOHGic1tdXZ3ztuEREREqKytrdkx5ebmGDRumwMBA9erVS+Xl5c7lrjNnzqi6urrZ8ldrmM1mgg8AtIGrP1v5rIUneNV9fBwOhxYtWqQ9e/bI4XCouLhY69evd36rKykpSXl5edq7d6/q6+uVnZ2tqqoqxcfHS5ISExOVmZmpiooKXbp0SQsXLlRsbKz69u3ryWEBAAAv4VUzPvHx8Zo7d67mz5+vU6dOKTQ0VE8//bTzgXZxcXFKT093toeHhysrK0tBQUGSJKvVqoaGBiUnJ6umpkaDBw/W8uXLPTcgAADgVUwOh8Ph6SK8hd1u16FDhxQVFcX0KwC0gdraWo0YMUKSVFBQwDU+cAtXzt9etdQFAADQlgg+AADAMAg+AADAMAg+AADAMAg+AADAMLzq6+wAAO/kcDha3Dn/Zlzdhzv6a2KxWGQymdzWHzovgg8A4LocDoesVqs+/vhjt/bbdI82d4iMjNTKlSsJP7ghlroAADdEoEBnwYwPAOC6TCaTVq5c6balqab75rozTLHUhdYi+AAAbshkMnGXZXQKLHUBAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADDIPgAAADD8GjwOXfunOLj47Vv3z7ntsOHD2vcuHGKjo7W8OHDlZub2+yYrVu3Kj4+XlFRUUpMTFRxcbGzzW63a8mSJRoyZIiio6OVmpqq06dPt9t4AACAd/NY8Dlw4IAmTJigEydOOLdduHBBTz75pMaMGaOioiItWLBAixYt0pEjRyRJ+/btU0ZGhhYvXqyioiKNGjVKqampqq2tlSRlZmaqsLBQmzdv1u7du2WxWJSWluaR8QEAAO/jkeCzdetWzZo1S88880yz7Tt37lRQUJCSk5Pl6+uruLg4JSQkKCcnR5KUm5urkSNHKiYmRn5+fpoyZYqCg4OVn5/vbJ8+fbrCwsLUvXt3zZs3T7t27VJFRUW7jxEAAHgfX0/8pQ8++KASEhLk6+vbLPyUlZWpX79+zfYNDw/Xpk2bJEnl5eUaO3Zsi/bS0lJdvHhRJ0+ebHZ8aGioAgMDdezYMfXp06fV9dnt9psZFgAA8ABXztseCT49e/a85vaamhoFBAQ022axWHT58uUbttfU1EiSunbt2qK9qa21SkpKXNofAAB0DB4JPl8mICBAFy9ebLbNZrOpW7duznabzdaiPTg42BmImq73udbxrRUZGSmz2exq+QAAwAPsdnurJy28Kvj069dPhYWFzbaVl5crIiJCkhQREaGysrIW7cOGDVNgYKB69eql8vJy53LXmTNnVF1d3WL57EbMZjPBBwCATsir7uMTHx+vs2fPKjs7W/X19dq7d6/y8vKc1/UkJSUpLy9Pe/fuVX19vbKzs1VVVaX4+HhJUmJiojIzM1VRUaFLly5p4cKFio2NVd++fT05LAAA4CW8asYnODhYb7zxhhYsWKAVK1YoJCREaWlpeuCBByRJcXFxSk9P1/z583Xq1CmFh4crKytLQUFBkiSr1aqGhgYlJyerpqZGgwcP1vLlyz03IAAA4FVMDofD4ekivIXdbtehQ4cUFRXFUhcAAB2EK+dvr1rqAgAAaEsEHwAAYBgEHwAAYBgEHwAAYBgEHwAAYBgEHwAAYBhedR8fAGjicDhaPKLmVvuTJJPJ5LY+LRaLW/sD0PYIPgDcwp1BxeFw6Nlnn9Vf//pXt/TXVu69914tXbqUMAV0IAQfAG5hs9k0YsQIT5fRro4ePapHH33UrX0WFBQ4H7oMwP24xgeAW3ATePfgdQTaFsEHAAAYBktdANzi6utS7Al2Pl1c0SCZ8754vhDX9wBtixkfAMbg+N8fAIbGv8kAuF3T7AUAeBtmfAAAgGEw4wPALSwWiwoKCtzWn8Ph0JUrV9zSl81m04QJEyRJGzdulMVicUu/Xbp0cfs1Oe6qDcC1EXwAuIXJZHLb/WccDoesVqs+/vhjt/R3taYA5A6RkZFauXIlFyQDHQhLXQC8EmECQFtgxgeA1zGZTFq5ciXP6gLgdgQfAF7JnUtnANCEpS4AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYBB8AAGAYXhl88vPz9bWvfU3R0dHOn9mzZ0uSDh8+rHHjxik6OlrDhw9Xbm5us2O3bt2q+Ph4RUVFKTExUcXFxZ4YAgAA8EK+ni7gWkpKSjR69GgtWrSo2fYLFy7oySef1MyZMzVhwgQVFRXJarWqf//+GjRokPbt26eMjAxlZWVp0KBBysnJUWpqqt5//30FBAR4aDQAAMBbeOWMT0lJiQYOHNhi+86dOxUUFKTk5GT5+voqLi5OCQkJysnJkSTl5uZq5MiRiomJkZ+fn6ZMmaLg4GDl5+e39xAAAIAX8roZn8bGRh09elQBAQFat26d7Ha7HnroIc2aNUtlZWXq169fs/3Dw8O1adMmSVJ5ebnGjh3bor20tNSlGux2+60NAgAAtBtXztteF3zOnTunr33taxoxYoRWrFih8+fP62c/+5lmz56tnj17tliyslgsunz5siSppqbmuu2tVVJScmuDAAAAXsnrgk9oaKhz6UqSAgICNHv2bI0fP16JiYmy2WzN9rfZbOrWrZtz32u1BwcHu1RDZGSkzGbzTY4AAAC0J7vd3upJC68LPqWlpXr77bf105/+VCaTSZJUV1cnHx8fDRo0SG+++Waz/cvLyxURESFJioiIUFlZWYv2YcOGuVSD2Wwm+AAA0Al53cXNQUFBysnJ0bp169TQ0KDKykq9/PLLeuKJJzRixAidPXtW2dnZqq+v1969e5WXl+e8ricpKUl5eXnau3ev6uvrlZ2draqqKsXHx3t4VAAAwBuYHA6Hw9NF/F8fffSRli1bpuPHj6tLly4aOXKkZs+erS5duqikpEQLFizQ8ePHFRISoqeeekqJiYnOY7dt26bMzEydOnVK4eHhSktL09e//vVW/b12u12HDh1SVFQUMz4AAHQQrpy/vTL4eArBBwCAjseV87fXLXUBAAC0FYIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDIIPAAAwDK+7czPgSQ6Ho8VjT261P0nOu5C7g8VicWt/AGAkBB90WG0RUp599ln99a9/dVufbeHee+/V0qVLCVMAcBMIPuiwbDabRowY4eky2t3Ro0f16KOPurXPgoICBQQEuLVPAPBGXOODDoubjrsPryUAoyD4AAAAw2CpCx3W1dekrBp2Xl14vJpLrtgl665gSe69+BoAvBnBB51CF7NkIfgAAG6A4INO4YrdJMn7rlNpunTGGydUvnjNAMBYCD7oFKy7gjxdAgCgA+DiZgAAYBjM+KDDslgsKigocFt/Rr+BIQAYAcEHHZbJZHLrTfccDofMZu+/QtrHx0cBAQF8EwsAbgLBB/hfJpNJK1eu5FldANCJEXyAq7h7FgkA4F24uBkAABgGwQcAABgGwQcAABgGwQcAABgGwQcAABgGwQcAABgGX2f3Ag6Hg3vHAADQDgg+LmqLkGLkxyQQpgAA7Yng4yKbzaYRI0Z4uox2d/ToUT366KNu7bOgoICbBQIA2hXX+LioaRkJt47XEgDQ3gg+AADAMFjqclFAQIB27NihK1euuKU/h8OhuXPn6pNPPnFLf23lP/7jP7Ro0SK3XZPTpUsXlrkAAO2u0wWfqqoqvfDCC/roo49kNps1atQo/exnP5Ovr3uGajKZ1LVrV3Xt2tUt/UnSmjVr+FYXAADtoNMFn5/85Cfq1auXdu/erbNnzyo1NVXZ2dlKSUnxdGlfiieCAwDQPjrVNT6fffaZPvroI82ePVsBAQHq06ePnnrqKeXk5Hi6NAAA4AU6VfApKytTUFCQevXq5dx2zz33qLKyUv/61788WBkAAPAGnWqpq6ampsWSUdPvly9f1m233daqfux2u9trAwAAbcOV83anCj5du3ZVbW1ts21Nv3fr1q3V/ZSUlLi1LgAA4B06VfCJiIhQdXW1zp49q9DQUEnSp59+qttvv109evRodT+RkZEym81tVSYAAHAju93e6kmLThV87rrrLsXExGjhwoX6+c9/rvPnz2v16tVKSkpyqR+z2UzwAQCgE+pUFzdL0ooVK9TQ0KBvfetbGj9+vL7xjW/oqaee8nRZAADAC3SqGR9JCg0N1YoVKzxdBgAA8EKdbsYHAADgyxB8AACAYRB8AACAYRB8AACAYXS6i5tvRdNTzblzMwAAHUfTebvpPH49BJ+rNDY2SuLOzQAAdERN5/HrMTlaE48MorGxUQ0NDfLx8ZHJZPJ0OQAAoBUcDocaGxvl6+srH5/rX8VD8AEAAIbBxc0AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4AAMAwCD4d1Llz5xQfH699+/Y5txUUFGj06NG67777NHz4cK1cufKad7H89a9/rUmTJrVnuZ2a3W7XpEmT9Nxzz7VoO336tIYMGaItW7Zc81jeC/f49NNPNW3aNN1///16+OGHlZmZ6fxvv7S0VJMnT1Z0dLSGDBmiRYsWqaGhoUUfvBe37lqfS9d7/RsbG/XKK69o2LBhiomJ0fjx4/XRRx+16Ndut+vHP/6xXn311XYbS0dVWlqqqVOnKjY2VkOHDtWcOXN07tw5Z9v1/l/YunWr4uPjFRUVpcTERBUXF7fovzO8FwSfDujAgQOaMGGCTpw44dz28ccfa86cOfrJT36i/fv3KysrS1u2bFF2drZzn8uXL2vx4sVavHixB6ruvFauXKn9+/e32N7Y2KhZs2bp/PnzLdp4L9ynpqZGKSkpCgsL065du5STk6P8/HytXr1a586d05QpUzRkyBB99NFH+sMf/qAPPvhAb775pvN43gv3uNbn0o1e/9///vd67733lJubq6KiIj3++OOaMWOGrly54uyjsrJSTz75pN599912H1NHY7PZlJKSoujoaP3lL3/R22+/rerqaj3//PM3fC/27dunjIwMLV68WEVFRRo1apRSU1NVW1vr7L+zvBcEnw5m69atmjVrlp555plm2z///HNNnDhR3/zmN+Xj46N77rlH8fHxKioqcu4zevRonTlzRt/97nfbu+xOa8+ePdq5c6ceeeSRFm2rVq3S7bffrrCwsBZtvBfuc+DAAVVVVenFF19U165ddccddyg1NVW/+93v9NZbb+muu+7SjBkz5OfnpzvvvFNvvPGGHnvsMefxvBe37ss+l270+v/tb39TY2OjGhsb5XA4ZDKZZLFYnMf//e9/1xNPPKGvf/3rio6ObtcxdUSVlZUaMGCArFar/P39FRwcrAkTJqioqOiG70Vubq5GjhypmJgY+fn5acqUKQoODlZ+fr6kzvVeEHw6mAcffFDvvvuuHn/88WbbR4wYoblz5zp/t9ls+uCDD3Tvvfc6t/3mN7/R0qVL9ZWvfKXd6u3MqqqqNG/ePC1dulQBAQHN2vbu3as//vGPSk9Pv+axvBfu09jYKD8/P/n5+Tm3mUwmnT17VoWFherXr59efPFFDR06VN/+9re1fft23X777c59eS9u3Zd9Lh05cuS6r//EiRNls9n08MMPKzIyUsuXL9eKFSvUpUsXSVLPnj313nvvaebMmc3eX1zb3XffrXXr1slsNju3FRQU6N57773he1FeXq5+/fo16y88PFylpaWSOtd7QfDpYHr27ClfX9/r7nPp0iVZrVZZLBZNmTLFuf3qD3vcmsbGRs2ePVtTp07VgAEDmrVVVVXp+eef1y9/+Ut169btmsfzXrjPfffdJ4vFoqVLl6q2tlaff/65Xn/9dUlfvE9btmzRoEGD9MEHH2jlypXauHGjfv3rXzuP5724dV/2uXThwoXrvv719fWKjY3VO++8o4MHDyolJUUzZ87UmTNnJEndu3dXjx492nUsnYXD4dArr7yi999/X/Pmzbvhe1FTU9PiH3AWi0WXL1+W1LneC4JPJ/O3v/1NEydOVENDg9avX6/u3bt7uqRO6bXXXpO/v3+Li2EdDofmzJmjSZMmaeDAgR6qzlhuu+02ZWVl6fDhw3r44Yf1k5/8RGPGjJH0xYWYkZGRSkpKkp+fnwYMGKDvf//7eueddzxbtEH4+/tf9/WfM2eOhg0bprvvvlsWi0VWq1U9evTQjh07PFx5x3bp0iXNnDlTeXl52rBhg/r373/D9yIgIEA2m61ZPzab7Uv/8daRXX/qAB3Kn//8Zz377LMaP368fvrTn95wZgg3b9u2bTp9+rTuv/9+SXJ+YLz11lvy8/PT4cOHtWrVKklffAi99NJLKigo0Guvveaxmjururo6Z9A3mUySpN/+9rcKDw/XwIEDm33DSJLzehK0vXvuuee6r39lZaXq6uqatfv6+nb4pRRPOnHihKZPn67evXtr06ZNCgkJkXTj9yIiIkJlZWXN2svLyzVs2LD2KbwdMePTSRw6dEhWq1Vz587Vz372M0JPG9uxY4cOHjyo/fv3a//+/frOd76j73znOyotLVVJSYlz+/79+9W7d2+lp6cTetrQtGnTtGnTJjkcDn388cdas2aNJk+erLFjx+r48ePKysqS3W7XsWPHtGHDBo0ePdrTJRvCjV7/4cOHKzMzUxUVFaqvr9ebb76pM2fO6Jvf/KaHK++YLly4oMmTJ+u+++7T66+/7gw90o3fi6SkJOXl5Wnv3r2qr69Xdna2qqqqFB8f76nhtBnOjp3EmjVr1NDQoAULFmjBggXO7TExMVq3bp0HKwPalr+/v1avXq1FixZp4cKF+spXvqLp06dr/PjxkqQNGzbov/7rv7R27VpZLBZ997vf5X497eSee+657us/f/58vfLKK0pOTlZtba369++v119/Xb169fJw5R3Tli1bVFlZqXfeeafFcmFxcfF134u4uDilp6dr/vz5OnXqlMLDw5WVlaWgoCAPjKRtmRzM+QIAAINgqQsAABgGwQcAABgGwQcAABgGwQcAABgGwQcAABgGwQcAABgGwQcAABgGwQcA2sBnn33m6RIAXAPBB0C7qKysVHp6uoYPH66oqCjFxsZq2rRpKiwsvO5xKSkpWrNmzZe29+/fv8UziNrCjeq42pIlS5SZmdnGFQG4GTyyAkCbO378uL73ve8pPj5eWVlZuuuuu3Tx4kX9+c9/ltVq1a9+9Ss99NBD1zzWWx654kod58+fb8NKANwKgg+ANvfiiy9q6NChWrRokXNbUFCQRo8ercbGRtXX10v64llDGzZsUFBQkI4cOaL09HT94Q9/UGxsrJ5++mnV19frl7/8pd566y2ZTCalpKS0uoZ//OMf+ta3vqW0tDStWbNGNptNw4cPV3p6urp37y5Jys3NVXZ2tv75z3/qjjvu0PTp0zVq1ChJ0qRJk5x1PPfcc/L399fp06e1b98+hYSEaPLkyfrBD36gVatWKS8vT5L017/+Vdu3b9dvf/tbvfHGG6qurlZYWJh+8IMfaNy4ce56eQG4gKUuAG3q5MmTKi4u1sSJE6/Z/sQTT+jb3/628/ejR48qISFBH374YYsnQ69evVoffPCBNm3apP/+7//W8ePHXa5n586dysvL044dO/TZZ5/ppZdekvRF6Fq8eLHS0tJUVFSk559/Xi+99JLefffda/azZcsWTZo0SUVFRZo+fboWL16sU6dOyWq1KiEhQQkJCdq+fbsqKiq0aNEirV27Vvv379ecOXOUkZGh06dPu1w7gFtH8AHQpk6ePClJuv32253b9uzZo/vvv1/333+/oqOjNWLECGebn5+fRo8eLX9/f1kslmZ9bdu2TdOmTVOfPn3UtWtXpaWlyWQyuVTP3LlzFRISop49e2rmzJnasWOH6urqtHnzZk2YMEFxcXEym82Ki4vThAkT9Pvf//6a/QwePFhDhw6Vr6+vxo4dK7vdrhMnTrTYz2w2y+Fw6Pe//70OHDiguLg4HTp0SF/96lddqhuAexB8ALSpnj17SpJOnTrl3BYXF6f9+/dr//79euGFF5xLXU37+/hc+6Pp9OnTCgsLc/5+2223KTAw0KV6/u3f/s3557CwMNXV1am6ulpnz55Vnz59mu1755136vPPP7/uuKQvwpokNTY2ttivd+/e+s1vfqPPP/9cP/rRjxQbG6uFCxfqypUrLtUNwD0IPgDa1B133KHIyEjl5ua2av/rzeDcfvvtqqiocP5++fJlXbx40aV6rg5g//jHPxQQEKDg4GDdeeedLWZsKioqmgWcm1FVVSW73a5Vq1Zp3759Wrt2rfLz87Vp06Zb6hfAzSH4AGhzCxcu1O7du/XCCy/o73//uxwOhy5duqS33npLr776aquXfcaNG6d169bp008/1ZUrV7R48WLZ7XaXalm6dKkuXbqkU6dOacWKFRo9erT8/PyUlJSkjRs3as+ePbLb7dq7d682btyosWPHujxef39/ZyCrrKzUD3/4Q+3Zs0c+Pj7q1auXJCk4ONjlfgHcOr7VBaDN9evXT2+//baysrL0ox/9SGfOnJHJZFL//v2VkpLS6m84TZ8+XbW1tfr+97+vhoYGjR8/XkFBQc72NWvWKC8vT3/84x+/tI++ffvqO9/5jmpra5WQkKDZs2dLkh577DFdunRJv/jFL1RZWalevXppzpw5GjNmjMvjffzxx/XMM8/o4Ycf1gcffKAXX3xR8+fP1+nTp9WjRw9973vf02OPPeZyvwBuncnhcDg8XQQAuIPD4dAPf/hD/frXv27R1vR19j/96U+68847PVAdAG/AUheATuPdd99VUlKSp8sA4MVY6gLQaTzyyCOeLgGAl2OpCwAAGAZLXQAAwDAIPgAAwDAIPgAAwDAIPgAAwDAIPgAAwDAIPgAAwDAIPgAAwDAIPgAAwDAIPgAAwDD+H5qbuQyDcoGpAAAAAElFTkSuQmCC\n" }, - "execution_count": 191, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "i = 1\n", - "n = 10\n", - "experiment_data.query(f'n_iter == {i} and grid == {n}')['time'].values[0]" + "sns.boxplot(x=data['grid']*data['grid'], y=data['time'] , showfliers=False)\n", + "plt.xlabel('Grid, points')\n", + "plt.ylabel('Time, s')\n", + "plt.savefig('schrodinger_weak_cache_false_time.png')" ], "metadata": { "collapsed": false @@ -257,22 +326,24 @@ }, { "cell_type": "code", - "execution_count": 208, - "outputs": [], + "execution_count": 135, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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8+bNjaeeesowDMPl+hw6dKgRGxtrZGZmGllZWcbDDz9sPPDAAy7Vp9VqNSIiIowPPvjAsFqtRmpqqtGrVy/jtddec4k+N27caPTs2dNo2rSpkZiYaBjG5f99+uqrrxpRUVHGoUOHjKysLOOxxx4zRo8e7bAeDaPkPpOSkoxWrVoZ3377rWG1Wo2UlBTjpptuMt555x3DMFynz0JWq9UYNmyY0bx5c2Px4sVF552tz5J6PHbsmNGhQwfjzTffNHJzc439+/cbt9xyizF37lyn7LG8FHyqqF9//dW4//77jfz8/KJzX3/9tdGmTRvjf//7n3HLLbcUG//8888b48aNMwzDMJ588kljwoQJxa737t3bWLRoUeUXfonWrFlj9OnTx3j00UeLgo8r9ZmUlGSEhoYaWVlZReeOHz9u7N6926X6zMjIMJo2bWq89957Rn5+vpGammrceuutxjvvvOP0fS5ZssS48cYbjc8//7zYf0Qut69u3boZn332WdG1I0eOGM2aNTP27dtXme1c0IX6XLFihTF16tRiY6dOnWo89NBDhmG4Tp+FZs+ebYwdO9a46aabigUfZ+rzQj2+8847xuDBg4uNPXDggHHw4EHDMJyrx0uhqa4qqlGjRsydOxez2Vx07ssvv6Rly5bs2bOHpk2bFhsfHBxMcnIyACkpKaVer2qOHTvG+PHjeemll/Dx8Sk670p9/vzzzwQHB/O///2PyMhIunTpwowZM6hTp45L9env78+IESOYMWMGoaGhdO/eneuuu44RI0Y4fZ9dunThq6++ok+fPsXOX05fWVlZpKWlFbteu3ZtfH192bVrVyV1UroL9dmrVy+eeeaZouOcnBy+//57WrZsCbhOnwCJiYl8/vnnxMXFnXfNmfq8UI8///wzTZs25fnnnyciIoKePXvy2WefERgYCDhXj5dCwccJGIbByy+/zHfffcf48ePJzs4uFhAALBYLp0+fBrjo9aqkoKCAsWPHMnLkSJo3b17smiv1mZmZya5du/j9999ZunQpn3zyCYcPH+app55yqT4LCgqwWCw899xzbN26lWXLlvHrr78ye/Zsp++zTp06eHp6nnf+cvrKzs4GoHr16uddL7xmbxfq81ynTp0iNjYWi8XCiBEjANfp89ixYzz77LP85z//oUaNGuddd6Y+L9RjZmYmS5YsoVWrVnz//fe89tprfPzxx7z33nuAc/V4KRR8qrhTp07x6KOPkpCQwPz582nWrBk+Pj7k5OQUG5eTk1P0D+nFrlclb731Ft7e3gwbNuy8a67Up7e3NwDjx4+nZs2a1K5dm8cee4wffvgBwzBcps+vvvqKL7/8knvuuQdvb2+aNGlCbGwsH374oUv9Ps91OX0V/sflzJkzF/x8VfPbb79x1113kZ+fz7x586hZsybgGn0ahsG4ceMYNmwYISEhJY5xhT69vb0JDQ1l4MCBeHl50bx5c4YOHcoXX3wBuEaPpVHwqcL27dvHgAEDOHXqFIsWLaJZs2YANG3alD179hQbm5KSQpMmTQBo0qRJqderkk8//ZT169fTrl072rVrx7Jly1i2bBnt2rVzqT6Dg4MpKCggLy+v6Fzh0zDXX3+9y/SZmppa9ARXIU9PT7y8vFzq93muy+nL19eXevXqkZKSUnTtyJEjnDhx4ryphqrghx9+YNCgQXTt2pV33nkHX1/fomuu0Gdqairr16/n9ddfL/p30qFDh5g0aRIPPvgg4Bp9Nm7c+Lx/TgsKCjAMA3CNHkvl2CVGciEnTpwwbrzxRuPpp582rFZrsWsZGRlGu3btjPfee8/Izc011q5da4SFhRlr1641DMMoeqpk7dq1RSvy27dvbxw/ftwBnZTPU089VbS42ZX6zM3NNSIjI41HHnnEOHXqlHHs2DHj3nvvNWJjY12qzz179hghISFGfHy8kZ+fb+zbt8+47bbbjOnTp7tUn+cuFL3cvl5++WXjtttuM/bt21f0hMzQoUMd1Vox5/a5ZcsWo2XLlsbChQtLHOsqff7d3xc3O2uf5/aYkpJihISEGG+//baRn59vJCcnG127djU++OADwzCct8eyUvCpot59912jadOmxg033GC0bt262B/DMIyff/7ZGDx4sBEWFmbcfPPNxf7BNAzD+OSTT4xevXoZrVu3NgYOHGhs3brVEW2U27nBxzBcq8+0tDTjscceMyIiIox27doZ48aNMzIzMw3DcK0+V69ebQwaNMho27atceONNxozZ840zp49axiG6/T59/9QXk5fubm5xosvvmh07drVaNOmjRETE2McPXrUbr2U5tw+H3zwQaNZs2bn/fvo/vvvLxrvCn3+3d+Dj2E4Z59/73Hr1q3GPffcY7Rr187o0qWL8frrrxsFBQVF152xx7IyGcaf97ZEREREXJzW+IiIiIjbUPARERERt6HgIyIiIm5DwUdERETchoKPiIiIuA0FHxEREXEbCj4iIiLiNhR8REQqyNmzZ0lLS3N0GSJSCgUfEak0hw4dIi4ujh49etC6dWvCw8O5//77Wb16damfGzVqFG+++eYFrzdr1ox169Zd8PrJkycZMGAAJ0+evOTaC4WFhbFx48Yyjb3nnntYs2bNRcft27ePe+65p9jebSJiHwo+IlIpdu/eTb9+/cjNzWXOnDls2rSJlStX0q9fP2JjY/nhhx8u+Nm5c+fy0EMPXfLPnjx5MnfeeSdXXHHFJX9HoS1bttCuXbsyjT1+/HiZxjVo0ID27dvzxhtvXE5pInIJFHxEpFI8//zzREREMG3aNBo3bozZbMbPz4/+/fsTFxdXdLdjyZIlREdHc99999GuXTsSEhIYNmwYr776KgB5eXlMmzaNDh060LFjR+bOnVvqz929ezc//PADd9xxR9H333nnnTz//PO0adOGLl268MYbbxTtRJ2Tk8O///1vunfvTvv27Rk2bBg///xz0fede3epR48evPXWW9x+++2EhYVx++23k5iYCMB9991XdIfrX//6F/n5+UycOJGIiAg6dOjAPffcw6ZNm4q+95577uGDDz4gIyOjgv6Ki0hZKPiISIVLS0tjy5Yt3HXXXSVev+OOO+jZs2fR8Y4dO4iKimLNmjVERkYWG/vGG2/w/fffs2jRIr799lt2795d6s/+8MMP6dmzJ97e3kXntm3bho+PD2vXriU+Pp4PPviARYsWATBx4kR++ukn5s2bx+rVq+nZsycjRozg0KFDJX7/4sWLeeWVV1izZg3Nmzdn4sSJALz77rvUr1+fSZMm8fzzz/Ppp5+yZcsWvvjiC9asWUP79u2ZNGlS0ffUq1ePkJAQli5dWmo/IlKxFHxEpMIVLvANDAwsOrd27VratWtHu3btCAsLo1evXkXXvLy86N+/P97e3lgslmLf9emnn3L//fdzzTXXUL16dSZMmIDJZLrgz05MTCQsLKzYOT8/P8aMGUO1atUIDQ1l8ODBfPbZZ5w9e5Zly5bx5JNPcu211+Lt7c3w4cNp1KgRy5YtK/H7Bw4cyLXXXouPjw9RUVH8/vvvJY6zWCwcOHCARYsWsXfvXv75z3/y2WefFRsTFhbG2rVrL9iLiFQ8BR8RqXB16tQB4PDhw0XnOnXqxMaNG9m4cSPPPfdcsYW9derUwcOj5H8dpaenExQUVHR8xRVX4Ovre8GfnZqaSr169Yqdu+qqq/Dy8io6DgoKIj09nczMTPLy8rj66quLjb/66qs5cOBAid9fu3btov/t6elZNGX2d3379uW5557jm2++4fbbb+emm27iww8/LDYmMDBQT4GJ2JmCj4hUuKuuuorQ0FAWLlxYpvGl3cEJDAxk//79RcenT58mKyur1O/6exhJT08vdu7AgQPUr1+f2rVrU61atWLfD7anrurWrVum2i9k7969tGzZkgULFrBx40Yef/xxJk6cyJ49e4rGWK3WCwY+Eakc+idORCrF1KlT+fHHH3nuuefYu3cvhmFw6tQpPvnkE1599dUyB4tBgwYxd+5cfv31V86ePcv06dOxWq0XHH/VVVcVu9MEcOTIEd5++23y8vL4+eefWbhwIYMGDcLDw4MBAwYwc+ZM/vjjD3Jzc/nggw9ISUmhb9++5e7Z29u7KJR99913PPzwwxw4cACLxYKfnx+enp7UqlWraHx6ejr169cv988RkUvn6egCRMQ1NW3alGXLljFnzhweeughjhw5gslkolmzZowaNYpBgwaV6XtGjx7NmTNnGDp0KPn5+dx55534+fldcHxERASbNm3izjvvLDpXp04dDhw4QJcuXahRowb//Oc/6dOnDwDjxo3j1VdfZcSIEZw4cYJmzZrxzjvv0LBhw3L3PHDgQF5++WWSkpKYPn06hw8f5q677uLUqVNcddVVvPzyy8XWPW3atKmoDhGxD5NxoQlqEREnlJyczPDhw/nhhx+wWCwsWbKE1157jW+//dbRpRWTlpZGVFQUX375JQEBAY4uR8RtaKpLRFxK8+bN6dq1K0uWLHF0KaWaN28ew4YNU+gRsTMFHxFxOePHj2fhwoVkZmY6upQS7du3j82bN1/W26lF5NJoqktERETchu74iIiIiNtQ8BERERG3oeAjIiIibkPBR0RERNyGgo+IiIi4DQUfERERcRsKPiIiIuI2FHxERETEbSj4iIiIiNv4f965t4FaULEkAAAAAElFTkSuQmCC\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "experiment_result = {'grid': [], 'n_iter': [], 'rmse': [],'nrmse': [], 'time': []}\n", - "for grid in range(10,50,10):\n", - " for n_iter in range(10):\n", - " test = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", - " result = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['u'].values\n", - " rmse = np.sqrt(np.mean((test - result) ** 2))\n", - " nrmse = rmse / np.std(result)\n", - " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", - " experiment_result['grid'].append(grid+1)\n", - " experiment_result['n_iter'].append(n_iter)\n", - " experiment_result['rmse'].append(rmse)\n", - " experiment_result['nrmse'].append(nrmse)\n", - " experiment_result['time'].append(time)" + "plt.plot(data['grid']*data['grid'], data['time'], marker='o', linestyle='')\n", + "plt.plot(xnew,f(xnew))\n", + "plt.xlabel('Grid (points)')\n", + "plt.ylabel('Time (s)')\n", + "plt.savefig('schrodinger_cache_false_time.png', dpi=150)\n", + "## schrodinger cache = True\n" ], "metadata": { "collapsed": false @@ -280,10 +351,11 @@ }, { "cell_type": "code", - "execution_count": 209, + "execution_count": 27, "outputs": [], "source": [ - "data = pd.DataFrame(experiment_result)" + "h = np.sqrt(data['rmse_v']**2 + data['rmse_u']** 2)\n", + "h_mean = list(set(h))" ], "metadata": { "collapsed": false @@ -291,31 +363,10 @@ }, { "cell_type": "code", - "execution_count": 210, - "outputs": [ - { - "data": { - "text/plain": "" - }, - "execution_count": 210, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": "
", - "image/png": "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\n" - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 39, + "outputs": [], "source": [ - "fig, axes = plt.subplots(1, 2)\n", - "\n", - "sns.boxplot(ax=axes[0],x='grid', y='time', data=data , showfliers=False)\n", - "\n", - "sns.boxplot(ax=axes[1],x='grid', y='rmse', data=data, showfliers=False)\n" + "from scipy import interpolate" ], "metadata": { "collapsed": false @@ -323,17 +374,14 @@ }, { "cell_type": "code", - "execution_count": 233, + "execution_count": 79, "outputs": [], "source": [ - "x_grid = np.linspace(-5,5,256)\n", - "t_grid = np.linspace(0,np.pi/2,201)\n", - "\n", - "x = torch.from_numpy(x_grid)\n", - "t = torch.from_numpy(t_grid)\n", - "\n", - "grid_test = torch.cartesian_prod(x, t).float()\n", - "# model_interp = test_data[test_data['grid'] == 10]['interpolated_values_u'].values" + "x1 = [11**2,21**2,31**2,41**2,51**2]\n", + "y1 = h_mean\n", + "tck = interpolate.splrep(x1,y1,s=5, k= 3)\n", + "xnew1 = np.linspace(11**2, 51**2)\n", + "yfit = interpolate.splev(xnew1, tck,der=0)" ], "metadata": { "collapsed": false @@ -341,30 +389,30 @@ }, { "cell_type": "code", - "execution_count": 237, + "execution_count": 82, "outputs": [ { "data": { - "text/plain": "" + "text/plain": "Text(0, 0.5, '$RMSE_h$')" }, - "execution_count": 237, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "
", - "image/png": "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\n" + "image/png": "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eR1uTp06pWuuuca9vXbtWl133XXavHmzPvroI910001aunRpoxQJAADgLa/DTXR0tI4fP+7e/vjjjzVkyBDZbDa1bt1aDz30kP72t781SpEAAADe8jrc3HrrrXrllVckSV999ZW++OIL9enTx72/U6dOOnbsmP8rBAAA8IHXn5aaNGmS7r77bqWlpencuXOKjo5WcnKye39ZWZkcDkejFAkAAOAtr8NNVFSUcnNz9eqrr6qiokL333+/x437tm/frtjY2MaoEQAAwGs+3cSvY8eOmj59ep37CgsLlZ6e7peiAAAA6svrcLN48WJ16dJF3bp1U1RU1EX7f/e73/m1MAAAgPrwOty88MIL7tNQV199tbp27aouXbqoa9eu6tq1qzp27NhoRQIAAHjL63CTmJio48ePa/To0YqMjNS+ffv00Ucf6U9/+pNcLpfatWunrl276uWXX27MegEAAC7L63Dz1ltvafXq1Xr22WfVpUsXPfHEE7r++utVXV2tAwcOaN++fdq3b19j1goAAHBFPl1QPHr0aKWnp+uFF17QmDFjdM8992jy5Mnq1q2bunXr1lg1AgAAeM3rm/jVatOmjR577DGtXr1ahw4d0qBBg5Sbm9sYtQEAAPjM53AjSdXV1Tp79qyGDh2qa665RjNnzlR5ebmfSwMAAPCd16el/vCHP+jgwYM6ePCgDh8+LLvdroSEBPXo0UP33HOP2rZt25h1AgAAeMXrcLNo0SJ17NhRo0aN0vDhw7kbMQAACEpeh5vk5GTt379fzz//vJYtW6aEhAT3vW66deumzp07y2azNWatAAAAV+R1uFm1apUk6fDhw9q7d6/7a/369aqoqFDr1q0VHx/PxcUAAKBJ+fRRcEmKjY1VbGyshg0b5h47evSoPv/8c33xxRd+LQ4AAMBXPoWbr776SocOHVJ8fLw6dOjgHo+JiVFMTIx69erl9wIBAAB84XW4Wb9+vR5//HG5XC796Ec/0pw5c3T33Xfrq6++0oYNG/T+++9r79693KUYAAA0Ka/DzZIlS3T//fdr7NixevbZZzVnzhwdOnRIS5cuVadOndSnTx898sgjjVkrAADAFXkdboqLi/XLX/5SHTt21OzZs3XHHXdo9+7dysvLU1xcXGPWCAAA4DWv71DsdDoVHh4uSYqOjlZ4eLgef/xxgg0AAAgqPv36hby8PBUV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Q68Dpzn0urZGbwTFNTedO3dWeXm5SktL3WNFRUWKjo5W27ZtPebGx8eroKDAY6ywsFCdO3f26rUsy2p4wQAAoEl483M8xAqSn/b33nuvoqOjNXfuXH377beaNGmS0tPTNWXKFI95RUVFGjVqlBYsWKBBgwbpvffe0/Tp0/X222/r+uuvv+LrnD9/3phlNwAAWprExES1bt36snOCJtyUlpZq7ty52rFjh0JDQ3X33XfrP/7jP2Sz2ZSUlKQ5c+borrvukiRt3bpVCxcuVHFxsTp27KisrCz16+fdr1KvqamR0+lUaGioQkJCGvMtAQAAP7EsSzU1NQoLC1No6OVPPAVNuAEAAPCHoLjmBgAAwF8INwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARmlR4aasrEwZGRlKSUlRamqq5s+fL6fT2dRlNUvvvPOOunTpoqSkJPdXVlaWJOkf//iHxo0bp6SkJPXv319vvfWWx2PXrFmjgQMHqmfPnho9erR2797dFG8h6J04cUIDBw7Ujh073GMN6a3L5dLTTz+tW2+9VUlJSZo0aZK++eabgL2fYFZXr2fPnq1u3bp5HONvvPGGez+99s3+/fv1r//6r+rdu7f69Omjxx57TCdOnJDEce1vl+t1izmurRbk/vvvt6ZNm2ZVVlZaxcXF1rBhw6ylS5c2dVnN0oIFC6zp06dfNF5eXm717t3bWrlypVVdXW19/PHHVlJSkvWPf/zDsizL2r59u5WUlGTt2rXLOn/+vPXKK69YqampVmVlZaDfQlDbtWuXNWDAACs+Pt7avn27ZVkN7+3ixYutESNGWCUlJdapU6eszMxMa+LEiU32HoNFXb22LMsaNWqUtXr16jofQ699U1VVZfXp08datGiRde7cOevEiRPWxIkTrYcffpjj2s8u12vLajnHdYsJN4cPH7bi4+OtY8eOucc2bNhg3XHHHU1YVfN13333WStXrrxo/M0337QGDRrkMTZr1izrsccesyzLsqZNm2b99re/9dg/ePBgKzc3t/GKbWZWr15t3XHHHdaGDRs8fuA2tLe33367tW7dOve+48ePWwkJCVZxcXFjvp2gdqlenzt3zuratat18ODBOh9Hr31TVFRkPfjgg5bT6XSPffDBB1avXr04rv3scr1uScd1izktVVBQoIiICEVFRbnH4uLi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3323bDab+vXrp/bt21/yIuLw8HDl5uZq27ZtiouL0yeffKLu3bv7VDcA/yLcAKi39u3bS5K+/vpr99hPf/pT7dq1S7t27dLMmTPdp6Vq54eG1v3PzjfffKNrrrnGvd2uXTtdddVVPtXzk5/8xP3na6+9VpJ0/PhxlZWVKSYmxmPuddddp6+++uqy76tWq1atVFNTc9G88PBwvfbaa6qpqdG0adN088036/HHH9fJkyd9qhuAfxFuANRbx44dlZiYqLfeesur+ZdbiYmOjtbRo0fd25WVlTp16pRP9Xw/ZNV+Qunaa69Vx44dVVxc7DH36NGjF4UYX50+fVrffPONfv/73+vjjz/WG2+8oc8///yynwAD0PgINwAaJDs7W1u3btXMmTN16NAhWZal06dPa+3atVq8eLE6dOjg1fOMGzdOy5YtU1FRkc6dO6cFCxbI5XL5VMsLL7yg48ePq6KiQk8//bT69u2rqKgojRkzRn/961/17rvvyuVyad++fVq6dKnGjBnj8/v90Y9+pNOnT8uyLJ05c0YTJ05UXl6eLMtShw4dFBoaqquvvtrn5wXgP4QbAA0SHx+v9evXKzw8XI888oiSk5PVr18/vfnmm5owYcIlL9r9oYkTJ+quu+7S/fffr9tuu01t27ZVRESET7V07dpV9957r/r376927dpp4cKFkqQePXpo0aJFWrp0qVJSUjR58mT9/Oc/1yOPPOLr29Wdd96p8vJyJScny263KycnR0uXLlWvXr00fPhw3XLLLfqXf/kXn58XgP+EWJZlNXURAOCr/v37a/Lkye773CQkJGjFihVKTU1t4sq+8+WXXyotLU3/8z//o+uuu66pywFaDFZuAACAUQg3AJqt2bNn++UOxY1h/vz5Gj58eFOXAbRInJYCAABGYeUGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABjl/wFZqGqthOnefgAAAABJRU5ErkJggg==\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ - "fig = plt.figure()\n", - "ax = fig.add_subplot(111, projection='3d')\n", - "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", - " v, cmap=cm.jet,linewidth=0.2, alpha=1)" + "plt.plot(data['grid']*data['grid'], h, marker='o', linestyle='' )\n", + "# plt.plot(xnew1,yfit)\n", + "plt.xlabel('Grid [points]')\n", + "plt.ylabel('$RMSE_h$')" ], "metadata": { "collapsed": false @@ -372,37 +420,60 @@ }, { "cell_type": "code", - "execution_count": 216, + "execution_count": 81, "outputs": [ { "data": { - "text/plain": "array([ 0.02695056, 0.03260382, 0.03420716, 0.03475574, 0.03492699,\n 0.034309 , 0.03360063, 0.03225105, 0.03112513, 0.02763927,\n 0.02636017, 0.07295037, 0.07319679, 0.069523 , 0.06700413,\n 0.06497201, 0.06289575, 0.06013422, 0.05698216, 0.05429713,\n 0.05016175, 0.04734092, 0.19711746, 0.1959615 , 0.19299055,\n 0.19102151, 0.1856891 , 0.17916657, 0.17192488, 0.16365532,\n 0.15508521, 0.14466002, 0.13431266, 0.52562333, 0.51784725,\n 0.49690626, 0.47210287, 0.44857975, 0.43657531, 0.4349855 ,\n 0.43444197, 0.42871452, 0.40757898, 0.37171966, 1.28071124,\n 1.19795536, 0.97999627, 0.71583666, 0.52882028, 0.52176611,\n 0.69010228, 0.92236583, 1.08294288, 1.08007742, 0.90557495,\n 1.99958073, 1.76528341, 0.98348639, -0.58226342, -2.94717013,\n -3.68001601, -0.72895298, 1.52340548, 2.18368684, 2.02259221,\n 1.41672212, 1.31929761, 1.22996009, 0.99357603, 0.70483754,\n 0.4996009 , 0.49408717, 0.68434882, 0.94443911, 1.12189913,\n 1.11994926, 0.93233271, 0.54579459, 0.53729191, 0.51428934,\n 0.48712315, 0.46181896, 0.44922325, 0.44867047, 0.44995444,\n 0.44506521, 0.42373231, 0.3863336 , 0.20492919, 0.20358779,\n 0.20035814, 0.19838182, 0.1929824 , 0.18638219, 0.179006 ,\n 0.17072315, 0.16164543, 0.15096439, 0.14012327, 0.0758565 ,\n 0.07634097, 0.07252998, 0.06995601, 0.0676208 , 0.0653251 ,\n 0.06267691, 0.0591192 , 0.05621535, 0.05225826, 0.0491113 ,\n 0.02802405, 0.03258097, 0.0342325 , 0.03482958, 0.03496365,\n 0.034333 , 0.03373345, 0.03231509, 0.03101465, 0.02774415,\n 0.02632516])" + "text/plain": "" }, - "execution_count": 216, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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Jk6cGD/84Q+P2GvpqtavXx9f//rX46STTopTTjklrr766njzzTfb79vf/wcPP/xwnHXWWTFs2LD4m7/5m3j++ec7bb+77AsRcoh+97vfxYUXXhgvv/xy+9i6devi6quvjilTpsSqVavijjvuiMWLF8f8+fPb5+zcuTNmzZoVs2bNSrDq7qmhoSFWrVrVabytrS2uuuqq2Lp1a6f77IfC2rFjR4wfPz6OO+64+Ld/+7dYuHBhPPHEE9HY2BhvvvlmXHrppXHyySfHihUr4sEHH4xnn3027rnnnvbH2x+Hbl/fkw70tX/ggQfimWeeiYceeihWrlwZ55xzTlxxxRXx9ttvt2+jqakpvvGNb8QvfvGLI/6auprdu3fH+PHjo6amJv793/89fvazn0VLS0tce+21B9wXy5cvj5tuuilmzZoVK1eujNGjR8c3v/nNDn88tjvtCxFyCB5++OG46qqr4tvf/naH8T/+8Y9x0UUXxRlnnBFFRUVRVVUVZ511VqxcubJ9zpgxY+KNN96Ir3zlK0d62d3SsmXL4umnn47Pfe5zne67/fbbo3///nHcccd1us9+KKzf/e530dzcHNddd12Ul5fHRz7ykfjmN78Z999/fzzyyCMxaNCguOKKK6K0tDT+4i/+In784x/HF77whfbH2x+H5t2+Jx3oa79p06Zoa2uLtra2yOVykclkomfPnu2P/5//+Z+44IIL4pOf/GTU1NQc0dfUFTU1NcXQoUNjwoQJ0aNHj+jTp09ceOGFsXLlygPui4ceeii++MUvRm1tbZSWlsall14affr0iSeeeCIiut++ECGH4DOf+Uz84he/iHPOOafD+Nlnnx3XXHNN++3du3fHs88+Gx//+Mfbx37yk5/EbbfdFn379j1i6+2umpubY9q0aXHbbbdFWVlZh/t++9vfxs9//vO4/vrr9/lY+6Gw2traorS0NEpLS9vHMplMbNmyJX7zm9/ECSecENddd12ccsopceaZZ8Zjjz0W/fv3b59rfxyad/ue9MILL+z3a3/RRRfF7t274/TTT4/q6ur4/ve/H3PmzIkPfOADERFx7LHHxjPPPBOTJ0/usG/Zt49+9KNx5513RnFxcfvYkiVL4uMf//gB98VLL70UJ5xwQoftHX/88bF+/fqI6H77QoQcgmOPPTZKSvb/h4i3b98eEyZMiJ49e8all17aPv7n33h579ra2mLq1Knx9a9/PYYOHdrhvubm5rj22mvj1ltvjV69eu3z8fZDYQ0fPjx69uwZt912W+zatSv++Mc/xl133RURf9pXixcvjk984hPx7LPPRkNDQ/z0pz+Nu+++u/3x9sehebfvSW+99dZ+v/Z79uyJk046KZ588slYvXp1jB8/PiZPnhxvvPFGRER88IMfjN69ex/R19Jd5HK5mD17dvz617+OadOmHXBf7Nixo9MPUz179oydO3dGRPfbFyLkMNq0aVNcdNFF0draGvfee2988IMfTL2kbmfevHnRo0ePTm9izOVycfXVV8fFF18cJ554YqLVvf9UVFTEHXfcEb///e/j9NNPjylTpsT5558fEX96I111dXWMHTs2SktLY+jQofG1r30tnnzyybSLfh/o0aPHfr/2V199dZx22mnx0Y9+NHr27BkTJkyI3r17x1NPPZV45V3b9u3bY/LkyfH444/HggULYsiQIQfcF2VlZbF79+4O29m9e/e7/iDV1e3/x3jes+eeey6uvPLKGDduXHznO9854BkT3ptHH300Xn/99airq4uIaP+f95FHHonS0tL4/e9/H7fffntE/Okbwo033hhLliyJefPmJVtzd/bOO++0R3cmk4mIiPvuuy+OP/74OPHEEzv8tkZEtL8HgcOrqqpqv1/7pqameOeddzrcX1JS0i1O96fy8ssvx+WXXx4DBgyIRYsWxYc//OGIOPC+GDx4cGzYsKHD/S+99FKcdtppR2bhR5gzIYfBmjVrYsKECXHNNdfEd7/7XQFyGD311FOxevXqWLVqVaxatSrOPffcOPfcc2P9+vWxdu3a9vFVq1bFgAED4vrrrxcgh9lll10WixYtilwuF+vWrYu5c+fGJZdcEl/60pfixRdfjDvuuCOy2Wz893//dyxYsCDGjBmTesnd3oG+9iNHjowf/ehH8corr8SePXvinnvuiTfeeCPOOOOMxCvvmt5666245JJLYvjw4XHXXXe1B0jEgffF2LFj4/HHH4/f/va3sWfPnpg/f340NzfHWWedlerlHFaOjofB3Llzo7W1NWbMmBEzZsxoH6+trY0777wz4crg8OrRo0c0NjbGzTffHDNnzoy+ffvG5ZdfHuPGjYuIiAULFsQtt9wS//qv/xo9e/aMr3zlKz4P5Aioqqra79f+hhtuiNmzZ8dXv/rV2LVrVwwZMiTuuuuu6NevX+KVd02LFy+OpqamePLJJztd0nr++ef3uy8+/elPx/XXXx833HBDvPbaa3H88cfHHXfcEZWVlQleyeGXyTkXCgAk4HIMAJCECAEAkhAhAEASIgQASEKEAABJiBAAIAkRAgAkIUIAgCRECJDM+PHjY+7cue96/5AhQzr9nQ2g+/Cx7UAy/owBvL+JEKCg/uu//ituuummWL9+ffzlX/5lfP7zn4+HHnooJk6cGAsWLIjKysp44YUX4vrrr48HH3wwTjrppJg0aVLs2bMnbr311njkkUcik8nE+PHjU78U4DBzOQYomO3bt8f48ePjr//6r2P58uVxyy23xIMPPth+/3/+53/GeeedF//xH//R6a+CNjY2xrPPPhuLFi2KX/3qV/Hiiy8e6eUDR5gIAQrmV7/6VRQXF8ekSZOiR48eMWTIkA5nNEpLS2PMmDHRo0eP6NmzZ4fHPvroo3HZZZfFwIEDo7y8PP7hH/4hMpnMkX4JwBEkQoCC+d///d8YMGBAFBX9/28tAwcObP/3Y489tsN9f+7111+P4447rv12RUVFfOhDHzp8iwWSEyFAwQwYMCCampoil8u1jzU1NbX/+/7ObPTv3z9eeeWV9ts7d+6M//u//zs8CwWOCiIEKJiRI0dGLpeLuXPnxjvvvBObNm2Ku+6666Ae++UvfznuvPPO2LhxY7z99tsxa9asyGazh3nFQEoiBCiY8vLyaGxsjF/+8pdx0kknxZVXXhmnnHJKlJaWHvCxl19+eYwePTq+9rWvxWc+85no3bt3VFZWHv5FA8lkcn9+3hTgEGzdujU2bdoUtbW17WM/+clP4uc//3k88MADCVcGHI2cCQEKJpvNxiWXXBLPPfdcRES8+uqrcd9998UZZ5yReGXA0ciZEKCgnnnmmfjBD34Qr776alRUVMQFF1wQEydOjJISn40IdCRCAIAkXI4BAJIQIQBAEiIEAEhChAAASYgQACAJEQIAJCFCAIAkRAgAkMT/A930sS8zsv3jAAAAAElFTkSuQmCC\n" + }, + "metadata": {}, + "output_type": "display_data" } ], - "source": [], + "source": [ + "# fig, axes = plt.subplots(1, 3)\n", + "\n", + "sns.boxplot(x=data['grid']*data['grid'], y=h , showfliers=False)\n", + "# sns.boxplot(ax=axes[1],x='grid', y='rmse_u', data=data, showfliers=False)\n", + "# sns.boxplot(ax=axes[2],x='grid', y='rmse_v', data=data, showfliers=False)" + ], "metadata": { "collapsed": false } }, { "cell_type": "code", - "execution_count": 231, - "outputs": [ - { - "data": { - "text/plain": "array([0.02695056, 0.02827012, 0.0288274 , ..., 0.02668994, 0.02647879,\n 0.02632516])" - }, - "execution_count": 231, - "metadata": {}, - "output_type": "execute_result" - } + "execution_count": 50, + "outputs": [], + "source": [ + "num = 50" ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 51, + "outputs": [], "source": [ - "u" + "x_grid = np.linspace(-5,5,num+1)\n", + "t_grid = np.linspace(0,np.pi/2,num+1)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()\n", + "# model_interp = test_data[test_data['grid'] == 10]['interpolated_values_u'].values" ], "metadata": { "collapsed": false @@ -410,9 +481,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 52, "outputs": [], - "source": [], + "source": [ + "V = experiment_data.query(f'n_iter == {6} and grid == {num}')['v'].values" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 53, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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jObpSJKETZs2YefOnRAEAZdeeinWr1+PCRMmjHj/d999h7a2Nnz55ZdIS0tDc3MzHn74YVRWVsZ9rETxxgBJRKQBR48exfLly9HX14dHHnlEXbaWJEld5hYEAZIkAYBa4NtkMsFgMKRsmIxsqSjLsroXVOnPPfRxJSs8AsCmTZuwfft2tLa2oqysDG1tbbBYLNizZ8+w4OtwOHD11VejubkZd911FwKBAJ577jkMDAzgzTffHLe9x+n8wQBJRHHndDrR0dGBv//97/B4PJg6dSoefPBBNDU1JXtomvHLX/4SX375JdauXYubb755xHskSYLL5YLD4YDL5YoKk7m5uTCZTCnTLWao0fpzf/311/D5fFiwYAHMZjNsNhsGBgag1+vR0NCQsD7yoihi9uzZWL16NZYtWwYAEAQBc+fOxTPPPIMlS5ZE3b9z5048++yz+Mc//qGGRavVinnz5uGVV17BnDlzEjJuonjhhhEiirsHHngAAwMD6OjogNlsxvbt27FixQrs2rULdXV1yR6eJixfvhy33HILFi9ePOo9aWlpKCwsRGFhISRJgiAIaph0Op1wOp0p0S1mJGlpaTCZTDCZTJAkCV6vF4IgYMuWLeju7sazzz6LCy+8EE1NTbjssstw8cUXJyw8AsA333yDwcFBzJ49W71mMpkwbdo0HD58eFiAnDNnDl544YURZxpdLlfcx0sUb5yBJKK4Onr0KBYtWoRXX30VM2fOBHByGfLKK6/EkiVLcN999yV5hKlPluWoMBkKhQAA6enpUTUZUyVMRrLZbNi9eze6urrwv//9D8DJvuMzZszAlVdeiYULF6Kqqiru49i3bx/uvfdefPnll8jOzlav33ffffD7/diyZctpv8aGDRvwxhtv4P3330dRUVE8h0sUd5yBJKK4KiwsxNatW3HRRRep13Q6HWRZ5kzMGNHpdMjPz0d+fj5kWYbb7VZrTbpcLrhcLk10izkbpaWluOaaa3DZZZfB7Xbjxx9/xIEDB3D48GH861//QmtrKy666CLcfffdmD9/ftzGobSmHDrrqdfrz+jn+E9/+hO2b9+ORx55hOGRxgUGSCKKK5PJhHnz5kVd27t3L44dO4af/exnSRrV+KXT6dSl4NraWng8HjVMCoIAQRCQlpYWVeBby2FyYGAA/f39yMjIwOzZs3H55Zfjlltugd1ux3vv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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", + " V, cmap=cm.jet,linewidth=0.2, alpha=1)" + ], "metadata": { "collapsed": false } From 166f77de95252e5a71081fdc198a761516947161 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 17:21:47 +0300 Subject: [PATCH 095/225] Update index.rst --- docs/source/modules/index.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index a593dc55..3bbd197d 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -4,8 +4,7 @@ Modules This one contain everything about modules into TEDEouS .. toctree:: - :glob: - :maxdepth: 2 + :maxdepth: config points_type From 1660845be904ca5b8476289cb2723bc7f10642b2 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 17:21:58 +0300 Subject: [PATCH 096/225] Update index.rst --- docs/source/modules/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index 3bbd197d..4a7b6843 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -4,7 +4,7 @@ Modules This one contain everything about modules into TEDEouS .. toctree:: - :maxdepth: + :maxdepth: 1 config points_type From ce98ba79bd0cacb04784309902a2ca6d9fb4ceee Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 17:31:13 +0300 Subject: [PATCH 097/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 74c2cfb1..75dc90af 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -5,7 +5,7 @@ Input preprocessing class Equation ~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.Equation +.. autoclass:: tedeous.input_preprocessing.Equation :members: :no-undoc-members: @@ -13,14 +13,14 @@ class Equation class EquationMixin ~~~~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.EquationMixin +.. autoclass:: tedeous.input_preprocessing.EquationMixin :members: :no-undoc-members: class EquationInt ~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.EquationInt +.. autoclass:: tedeous.input_preprocessing.EquationInt :members: :no-undoc-members: @@ -28,7 +28,7 @@ class EquationInt class Equation_NN ~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.Equation_NN +.. autoclass:: tedeous.input_preprocessing.Equation_NN :members: :no-undoc-members: @@ -36,7 +36,7 @@ class Equation_NN class Equation_mat ~~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.Equation_mat +.. autoclass:: tedeous.input_preprocessing.Equation_mat :members: :no-undoc-members: @@ -44,7 +44,7 @@ class Equation_mat class Equation_autograd ~~~~~~~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.Equation_autograd +.. autoclass:: tedeous.input_preprocessing.Equation_autograd :members: :no-undoc-members: From 61ac28b99acd9e08550b312a2b0e5341be5dbf18 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 18:24:00 +0300 Subject: [PATCH 098/225] Update points_type.rst --- docs/source/modules/points_type.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index 2a85e07d..1587f5d3 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -5,6 +5,6 @@ Points type Points type ~~~~~~~~~~~ -.. automodule:: points_type +.. automodule:: tedeous.points_type.Points_type :members: :no-undoc-members: From be0737545af69cf8b971aaf0137efe415ea99f3a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 18:30:52 +0300 Subject: [PATCH 099/225] Update points_type.rst --- docs/source/modules/points_type.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index 1587f5d3..f46a0fa6 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -5,6 +5,6 @@ Points type Points type ~~~~~~~~~~~ -.. automodule:: tedeous.points_type.Points_type - :members: +.. autoclass:: tedeous.points_type.Points_type + :no-inherited-members: :no-undoc-members: From ce5066b1ffd7dadf5718f792e3d3d9ce1397e827 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 18:37:58 +0300 Subject: [PATCH 100/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 75dc90af..a0201c40 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -6,7 +6,7 @@ class Equation ~~~~~~~~~~~~~~ .. autoclass:: tedeous.input_preprocessing.Equation - :members: + :no-inherited-members: :no-undoc-members: @@ -14,14 +14,14 @@ class EquationMixin ~~~~~~~~~~~~~~~~~~~~ .. autoclass:: tedeous.input_preprocessing.EquationMixin - :members: + :no-inherited-members: :no-undoc-members: class EquationInt ~~~~~~~~~~~~~~~~~ .. autoclass:: tedeous.input_preprocessing.EquationInt - :members: + :no-inherited-members: :no-undoc-members: @@ -29,7 +29,7 @@ class Equation_NN ~~~~~~~~~~~~~~~~~ .. autoclass:: tedeous.input_preprocessing.Equation_NN - :members: + :no-inherited-members: :no-undoc-members: @@ -37,7 +37,7 @@ class Equation_mat ~~~~~~~~~~~~~~~~~~ .. autoclass:: tedeous.input_preprocessing.Equation_mat - :members: + :no-inherited-members: :no-undoc-members: @@ -45,6 +45,6 @@ class Equation_autograd ~~~~~~~~~~~~~~~~~~~~~~~ .. autoclass:: tedeous.input_preprocessing.Equation_autograd - :members: + :no-inherited-members: :no-undoc-members: From 5dd87e02faa9902e1bd78f29551dbee5449a0626 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 18:57:21 +0300 Subject: [PATCH 101/225] Update solver.py --- tedeous/solver.py | 140 ++++++++++++++++------------------------------ 1 file changed, 49 insertions(+), 91 deletions(-) diff --git a/tedeous/solver.py b/tedeous/solver.py index 48f56e6a..853c68e1 100644 --- a/tedeous/solver.py +++ b/tedeous/solver.py @@ -15,18 +15,14 @@ def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: Prepares grid to a general form. Further, formatted grid can be processed by Points_type.point_typization for 'NN' and 'autograd' methods. - Parameters - ---------- - coord_list - list with coordinates. - mode - Calculation method. (i.e., "NN", "autograd", "mat") - - Returns - ------- - grid - grid in a general form + Args: + coord_list: list with coordinates. + mode: Calculation method. (i.e., "NN", "autograd", "mat"). + + Returns: + grid: grid in a general form. """ + if type(coord_list) == torch.Tensor: print('Grid is a tensor, assuming old format, no action performed') return coord_list @@ -54,19 +50,16 @@ class Solver(Model_prepare): """ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], - model: torch.nn.Sequential, mode: str, weak_form: None = None): + model: torch.nn.Sequential, mode: str, weak_form: Union[None, list] = None): """ High-level interface for solving equations. Args: - grid - array of a n-D points. - equal_cls - object from input_preprocessing (see input_preprocessing.Equation). - model - neural network. - mode - Calculation method. (i.e., "NN", "autograd", "mat"). + grid: array of a n-D points. + equal_cls: object from input_preprocessing (see input_preprocessing.Equation). + model: neural network. + mode: calculation method. (i.e., "NN", "autograd", "mat"). + weak_form: list of basis functions. """ super().__init__(grid, equal_cls, model, mode) self.weak_form = weak_form @@ -74,16 +67,14 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: """ + Setting optimizer. + Args: - optimizer: - optimizer choice (Adam, SGD, LBFGS). - learning_rate: - determines the step size at each iteration while moving toward a minimum of a loss function. + optimizer: optimizer choice (Adam, SGD, LBFGS). + learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. Returns: - optimizer - torch.optimizer object as is. - + optimizer: torch.optimizer object as is. """ if optimizer == 'Adam': if self.mode == 'NN' or self.mode == 'autograd': @@ -115,15 +106,12 @@ def solution_print(self, title: Union[str, None] = None, solution_print: bool = Visualizes the resulting solution. Args: - title - as is. - solution_print - draws a figure. - solution_save: - saves figure. - save_dir: - a directory where saved figure in. + title: as is. + solution_print: draws a figure. + solution_save: saves figure. + save_dir: a directory where saved figure in. """ + if save_dir == None: img_dir = os.path.join(os.path.dirname(__file__), 'img') if not (os.path.isdir(img_dir)): @@ -198,61 +186,35 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea High-level interface for solving equations. Args: - lambda_bound - an arbitrary chosen constant, influence only convergence speed. - verbose - more detailed info about training process. - learning_rate - determines the step size at each iteration while moving toward a minimum of a loss function. - eps - arbitrarily small number that uses for loss comparison criterion. - tmax - maximum execution time. - nmodels - ? - name - model name if saved. - abs_loss: Union[None, float] - absolute loss???. - use_cache - as is. - cache_dir - directory where saved cache in. - cache_verbose - more detailed info about models in cache. - save_always - ???? - print_every - prints the state of each given iteration to the command line. - cache_model - model that uses in cache - patience - if the loss is less than a certain value, then the counter increases, - when it reaches the given patience, the calculation stops. - loss_oscillation_window - - no_improvement_patience - - model_randomize_parameter - creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - optimizer_mode - optimizer choice (Adam, SGD, LBFGS). - step_plot_print - draws a figure through each given step. - step_plot_save - saves a figure through each given step. - image_save_dir - a directory where saved figure in. - + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + verbose: detailed info about training process. + learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. + eps: arbitrarily small number that uses for loss comparison criterion. + tmax: maximum execution time. + nmodels: smth + name: model name if saved. + abs_loss: absolute loss. + use_cache: as is. + cache_dir: directory where saved cache in. + cache_verbose: detailed info about models in cache. + save_always: smth + print_every: prints the state of each given iteration to the command line. + cache_model: model that uses in cache + patience:if the loss is less than a certain value, then the counter increases when it reaches the given patience, the calculation stops. + loss_oscillation_window: smth + no_improvement_patience: smth + model_randomize_parameter: creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + optimizer_mode: optimizer choice (Adam, SGD, LBFGS). + step_plot_print: draws a figure through each given step. + step_plot_save: saves a figure through each given step. + image_save_dir: a directory where saved figure in. + Returns: - model - neural network. - + model: neural network. """ - # prepare input data to uniform format + r = self.create_random_fn(model_randomize_parameter) - # use cache if needed if use_cache: self.model, min_loss = self.cache(cache_dir=cache_dir, nmodels=nmodels, @@ -265,7 +227,6 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea optimizer = self.optimizer_choice(optimizer_mode, learning_rate) if True: - # if not use_cache: min_loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) save_cache = False @@ -273,7 +234,6 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea if min_loss > 0.1 or save_always: # why 0.1? save_cache = True - # standard NN stuff if verbose: print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(), min_loss)) @@ -286,16 +246,14 @@ def closure(): nonlocal cur_loss optimizer.zero_grad() loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) - loss.backward() cur_loss = loss.item() return loss stop_dings = 0 t_imp_start = 0 - # to stop train proceduce we fit the line in the loss data - # if line is flat enough 5 times, we stop the procedure cur_loss = min_loss + while stop_dings <= patience: optimizer.step(closure) From c4deff0f0e1c7064d251f906aa52fb3ddd6eba7e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 18:58:03 +0300 Subject: [PATCH 102/225] Update solver.rst --- docs/source/modules/solver.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst index 020ff92b..4d7d824d 100644 --- a/docs/source/modules/solver.rst +++ b/docs/source/modules/solver.rst @@ -1,5 +1,5 @@ Solver -.. automodule:: solver - :members: - :no-undoc-members: \ No newline at end of file +.. autoclass:: tedeous.solver.Solver + :no-inherited-members: + :no-undoc-members: From e0cf0d296ddfc6b48aa063efb58b2157bc586513 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:02:20 +0300 Subject: [PATCH 103/225] Update points_type.rst --- docs/source/modules/points_type.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index f46a0fa6..0415d518 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -2,9 +2,6 @@ Points type =========== -Points type -~~~~~~~~~~~ - .. autoclass:: tedeous.points_type.Points_type :no-inherited-members: :no-undoc-members: From c970f0d12d410c337a7ae8bdf5c080b4fc9fca96 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:02:44 +0300 Subject: [PATCH 104/225] Update solver.rst --- docs/source/modules/solver.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst index 4d7d824d..f57e2859 100644 --- a/docs/source/modules/solver.rst +++ b/docs/source/modules/solver.rst @@ -1,4 +1,6 @@ +====== Solver +====== .. autoclass:: tedeous.solver.Solver :no-inherited-members: From 7b89b57cb801b79555e49db7e16f206d4d20d6c1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:20:05 +0300 Subject: [PATCH 105/225] Update cache.rst --- docs/source/modules/cache.rst | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/source/modules/cache.rst b/docs/source/modules/cache.rst index c5a2f7b6..99b1bbf9 100644 --- a/docs/source/modules/cache.rst +++ b/docs/source/modules/cache.rst @@ -2,8 +2,6 @@ Cache ===== -Model prepare -~~~~~~~~~~~~~ -.. automodule:: tedeous.cache.Model_prepare - :members: +.. autoclass:: tedeous.cache.Model_prepare + :no-inherited-members: :no-undoc-members: From 4d258d0fcd8633befa7ea3bcc641ca7afc70cc06 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:21:08 +0300 Subject: [PATCH 106/225] Update config.rst --- docs/source/modules/config.rst | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst index 67898cf2..24cc6760 100644 --- a/docs/source/modules/config.rst +++ b/docs/source/modules/config.rst @@ -1,6 +1,9 @@ Config ====== -.. automodule:: config - :members: - :no-undoc-members: \ No newline at end of file +Config +~~~~~~ + +.. autoclass:: tedeous.config.Config + :no-inherited-members: + :no-undoc-members: From 7dc9d64a57a4b2386067e6c7b6771ec79b9e6b20 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:22:18 +0300 Subject: [PATCH 107/225] Update finite_diffs.rst --- docs/source/modules/finite_diffs.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/source/modules/finite_diffs.rst b/docs/source/modules/finite_diffs.rst index 07f6d2f2..017b3d0c 100644 --- a/docs/source/modules/finite_diffs.rst +++ b/docs/source/modules/finite_diffs.rst @@ -1,6 +1,7 @@ +======================== Finite difference method ======================== -.. automodule:: finite_diffs - :members: - :no-undoc-members: \ No newline at end of file +.. autoclass:: tedeous.finite_diffs.Finite_diffs + :no-inherited-members: + :no-undoc-members: From f720d3397daa58fd3ecfd990641bff95497c905b Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:22:58 +0300 Subject: [PATCH 108/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 40 --------------------- 1 file changed, 40 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index a0201c40..52dc001f 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -8,43 +8,3 @@ class Equation .. autoclass:: tedeous.input_preprocessing.Equation :no-inherited-members: :no-undoc-members: - - -class EquationMixin -~~~~~~~~~~~~~~~~~~~~ - -.. autoclass:: tedeous.input_preprocessing.EquationMixin - :no-inherited-members: - :no-undoc-members: - - -class EquationInt -~~~~~~~~~~~~~~~~~ -.. autoclass:: tedeous.input_preprocessing.EquationInt - :no-inherited-members: - :no-undoc-members: - - -class Equation_NN -~~~~~~~~~~~~~~~~~ - -.. autoclass:: tedeous.input_preprocessing.Equation_NN - :no-inherited-members: - :no-undoc-members: - - -class Equation_mat -~~~~~~~~~~~~~~~~~~ - -.. autoclass:: tedeous.input_preprocessing.Equation_mat - :no-inherited-members: - :no-undoc-members: - - -class Equation_autograd -~~~~~~~~~~~~~~~~~~~~~~~ - -.. autoclass:: tedeous.input_preprocessing.Equation_autograd - :no-inherited-members: - :no-undoc-members: - From 4323a617576cb6ac1c86d9e7b66a9235be69254d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:23:09 +0300 Subject: [PATCH 109/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 52dc001f..16734a30 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -2,7 +2,7 @@ Input preprocessing =================== -class Equation +Equation ~~~~~~~~~~~~~~ .. autoclass:: tedeous.input_preprocessing.Equation From a79c1db850101044a77fc1144004dd7581ac882f Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:24:10 +0300 Subject: [PATCH 110/225] Update metrics.rst --- docs/source/modules/metrics.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/source/modules/metrics.rst b/docs/source/modules/metrics.rst index 8ca710ea..6e18a548 100644 --- a/docs/source/modules/metrics.rst +++ b/docs/source/modules/metrics.rst @@ -1,8 +1,10 @@ +======= Metrics ======= -class Derivative_NN -~~~~~~~~~~~~~~~~~~~ +Derivative_NN +~~~~~~~~~~~~~ .. autoclass:: tedeous.metrics.Derivative_NN - + :no-inherited-members: + :no-undoc-members: From cfbd939cb88d244a27abf510a2689385f4afa43e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 16 Dec 2022 20:05:22 +0300 Subject: [PATCH 111/225] Some docs improvements --- tedeous/finite_diffs.py | 11 +---- tedeous/metrics.py | 89 ++++++++++++++++++----------------------- tedeous/solver.py | 2 + 3 files changed, 42 insertions(+), 60 deletions(-) diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index cfcf7c89..485aa36a 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -140,34 +140,27 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[li axes_mode: 'central' or combination of 'f' and 'b'. Returns: - finite_diff: transformed axes due to finite difference mode. - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + Transformed axes due to finite difference mode;\n + List, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] direction_list = [] - # we generate [0,0,0,...] for number of variables (varn) for i in range(varn): finite_diff += [0] - # just to make this [[0,0,...]] finite_diff = [finite_diff] - # when we increase differential order for i in range(order): diff_list = [] for diff in finite_diff: - # we use [0,0]->[[1,0],[-1,0]] rule for the axis if axes_mode == 'central': f_diff = Finite_diffs.second_order_shift(diff, axes[i], 'central') else: f_diff = Finite_diffs.second_order_shift(diff, axes[i], axes_mode[axes[i]]) if len(diff_list) == 0: - # and put it to the pool of differentials if it is empty diff_list = f_diff else: - # or add to the existing pool for diffs in f_diff: diff_list.append(diffs) - # the we go to the next differential if needed finite_diff = diff_list direction_list.append(axes_mode[axes[i]]) return finite_diff, direction_list diff --git a/tedeous/metrics.py b/tedeous/metrics.py index 665fb34c..e0452982 100644 --- a/tedeous/metrics.py +++ b/tedeous/metrics.py @@ -37,27 +37,17 @@ def take_derivative(self, term: Union[list, int, torch.Tensor]) -> torch.Tensor: der_term: resulting field, computed on a grid. """ - # it is may be int, function of grid or torch.Tensor + coeff = term[0] - # this one contains shifted grids (see input_preprocessing module) shift_grid_list = term[1] - # signs corresponding to a grid s_order_norm_list = term[2] - # float that represents power of the differential term power = term[3] - # number of variables in equation variables = term[4] - # initially it is an ones field der_term = (torch.zeros_like(self.model(shift_grid_list[0][0])[0:, 0]) + 1).reshape(-1, 1) - for j, scheme in enumerate(shift_grid_list): - # every shift in grid we should add with corresponding sign, so we start - # from zeros grid_sum = torch.zeros_like(self.model(scheme[0]))[0:, 0].reshape(-1, 1) for k, grid in enumerate(scheme): - # and add grid sequentially grid_sum += (self.model(grid)[0:, variables[j]]).reshape(-1, 1) * s_order_norm_list[j][k] - # Here we want to apply differential operators for every term in the product der_term = der_term * grid_sum ** power[j] der_term = coeff * der_term @@ -118,24 +108,18 @@ def take_derivative(self, term) -> torch.Tensor: Returns: der_term: resulting field, computed on a grid. """ - # it is may be int, function of grid or torch.Tensor + coeff = term[0] - # this one contains shifted grids (see input_preprocessing module) product = term[1] - # float that represents power of the differential term power = term[2] - # list that represent using variables variables = term[3] - # initially it is an ones field der_term = (torch.zeros_like(self.model(self.grid))[0:, 0] + 1).reshape(-1, 1) for j, derivative in enumerate(product): if derivative == [None]: der = self.model(self.grid)[:, variables[j]].reshape(-1, 1) else: der = self.nn_autograd_mixed(self.model, self.grid, axis=derivative)[0:, variables[j]].reshape(-1, 1) - der_term = der_term * der ** power[j] - der_term = coeff * der_term return der_term @@ -194,7 +178,7 @@ def derivative(u_tensor: torch.Tensor, h_tensor: torch.Tensor, axis: int, Returns: du: computed derivative. """ - # print('shape=',u_tensor.shape) + if (u_tensor.shape[0] == 1): du = Derivative_mat.derivative_1d(u_tensor, h_tensor) return du @@ -305,13 +289,10 @@ def take_derivative(self, term) -> torch.Tensor: Returns: der_term: resulting field, computed on a grid. """ - # it is may be int, function of grid or torch.Tensor + coeff = term[0] - # this one contains product of differential operator operator_product = term[1] - # float that represents power of the differential term power = term[2] - # initially it is an ones field der_term = torch.zeros_like(self.model) + 1 for j, scheme in enumerate(operator_product): prod = self.model @@ -373,7 +354,6 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa equal_cls: object from input_preprocessing (see input_preprocessing.Equation). model: neural network or matrix depending on the selected mode. mode: a given calculation method. - """ self.grid = grid self.prepared_operator = equal_cls.operator_prepare() @@ -430,11 +410,9 @@ def b_op_val_calc(self, bcond: list) -> torch.Tensor: Returns: b_op_val: calculated operator on the boundary. """ - b_pos = bcond[0] bop = bcond[1] - truebval = bcond[2].reshape(-1, 1) var = bcond[3] - btype = bcond[4] + if bop == None or bop == [[1, [None], 1]]: if self.mode == 'NN': grid_dict = points_type.Points_type.grid_sort(self.grid) @@ -493,7 +471,15 @@ def apply_bconds_operator(self) -> tuple[torch.Tensor, torch.Tensor]: return b_val, true_b_val - def l2_loss(self, lambda_bound=10): + def l2_loss(self, lambda_bound: Union[int, float] = 10) -> torch.Tensor: + """ + Computes l2 loss. + + Args: + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + Returns: + loss: model loss. + """ if self.mode == 'mat' or self.mode == 'autograd': if self.prepared_bconds == None: print('No bconds is not possible, returning infinite loss') @@ -522,9 +508,7 @@ def l2_loss(self, lambda_bound=10): crucial thing for all that stuff, so we should increase significance of the coundary conditions """ - # l1_lambda = 0.001 - # l1_norm =sum(p.abs().sum() for p in model.parameters()) - # loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2)+ l1_lambda * l1_norm + if self.mode == 'mat': loss = torch.mean((op) ** 2) + lambda_bound * torch.mean((b_val - true_b_val) ** 2) else: @@ -532,28 +516,19 @@ def l2_loss(self, lambda_bound=10): torch.mean((b_val - true_b_val) ** 2, 0)) return loss - def weak_loss(self, weak_form, lambda_bound=10): - ''' + def weak_loss(self, weak_form: list, lambda_bound: Union[int, float] = 10) -> torch.Tensor: + """ Weak solution of O/PDE problem. - Parameters: - --------- - weak_form: list of basis functions - lambda_bound: const regularization parameter - --------- - ''' + + Args: + weak_form: list of basis functions. + lambda_bound: const regularization parameter. + Returns: + loss: model loss. + """ def integration(func, grid, pow='sqrt'): - ''' - Function realize 1-space/multiple integrands, - where func=(L(u)-f)*weak_form subintegrands function and - definite integral parameter is grid - Parameters: - ---------- - func: torch.tensor - grid: torch.tensor - pow: string (sqrt ar abs) power of func points - ---------- - ''' + if grid.shape[-1] == 1: column = -1 else: @@ -630,7 +605,19 @@ def integration(func, grid, pow='sqrt'): return loss - def loss_evaluation(self, lambda_bound=10, weak_form=None): + def loss_evaluation(self, lambda_bound: Union[int, float] = 10, weak_form: Union[None, list] = None) \ + -> Union[l2_loss, weak_loss]: + """ + Setting the required loss calculation method. + + Args: + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + weak_form: list of basis functions. + + Returns: + A given calculation method. + + """ if weak_form == None or weak_form == []: return self.l2_loss(lambda_bound=lambda_bound) else: diff --git a/tedeous/solver.py b/tedeous/solver.py index 853c68e1..00ededed 100644 --- a/tedeous/solver.py +++ b/tedeous/solver.py @@ -64,6 +64,7 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa super().__init__(grid, equal_cls, model, mode) self.weak_form = weak_form + def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: """ @@ -100,6 +101,7 @@ def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ return optimizer + def solution_print(self, title: Union[str, None] = None, solution_print: bool = False, solution_save: bool = True, save_dir: Union[str, None] = None): """ From 6273d2423bcf6d8a1041ff059cd7bdfd0487e6ea Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sat, 17 Dec 2022 19:06:07 +0300 Subject: [PATCH 112/225] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 0ea69fc1..4df2262b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ scipy seaborn torch autodocsumm +typing From db3c589f1275478328456a27e2966b04971c6eb6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sat, 17 Dec 2022 19:15:05 +0300 Subject: [PATCH 113/225] Update .readthedocs --- .readthedocs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.readthedocs b/.readthedocs index 9794ec9d..a0447562 100644 --- a/.readthedocs +++ b/.readthedocs @@ -11,6 +11,6 @@ sphinx: python: - version: 3.9 + version: 3.9.0 install: - - requirements: requirements.txt \ No newline at end of file + - requirements: requirements.txt From 3618aebfb6808b5e7059233bd1899eca57163539 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sat, 17 Dec 2022 19:22:48 +0300 Subject: [PATCH 114/225] Update .readthedocs --- .readthedocs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs b/.readthedocs index a0447562..50f11ed4 100644 --- a/.readthedocs +++ b/.readthedocs @@ -11,6 +11,6 @@ sphinx: python: - version: 3.9.0 + version: 3.8.7 install: - requirements: requirements.txt From 858d95c2fcc842ac2e1076d140a49cd48df4cd41 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sat, 17 Dec 2022 20:27:38 +0300 Subject: [PATCH 115/225] Fix for docs --- examples/example_wave_paper.py | 2 +- examples/example_weak_LotkaVolterra.py | 6 +++--- examples/example_weak_Lotka_paper.py | 6 +++--- examples/example_weak_SOD.py | 6 +++--- examples/example_weak_Schrodinger.py | 2 +- tedeous/cache.py | 6 +++--- tedeous/config.py | 4 ++-- tedeous/finite_diffs.py | 2 +- tedeous/metrics.py | 15 ++++++++------- tedeous/points_type.py | 6 +++--- 10 files changed, 28 insertions(+), 27 deletions(-) diff --git a/examples/example_wave_paper.py b/examples/example_wave_paper.py index 95b46428..412482bd 100644 --- a/examples/example_wave_paper.py +++ b/examples/example_wave_paper.py @@ -193,7 +193,7 @@ def wave_experiment(grid_res,CACHE): if not(os.path.isdir(img_dir)): os.mkdir(img_dir) - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=100,verbose=1, learning_rate=1e-4, + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=100,verbose=True, learning_rate=1e-4, eps=1e-8, tmin=1000, tmax=1e6,use_cache=CACHE,cache_verbose=True, save_always=True,print_every=None,model_randomize_parameter=1e-5, optimizer_mode='Adam',no_improvement_patience=1000,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) diff --git a/examples/example_weak_LotkaVolterra.py b/examples/example_weak_LotkaVolterra.py index 715c0a89..928583e9 100644 --- a/examples/example_weak_LotkaVolterra.py +++ b/examples/example_weak_LotkaVolterra.py @@ -22,9 +22,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time alpha = 20. diff --git a/examples/example_weak_Lotka_paper.py b/examples/example_weak_Lotka_paper.py index f0a6f615..160ae7a8 100644 --- a/examples/example_weak_Lotka_paper.py +++ b/examples/example_weak_Lotka_paper.py @@ -22,9 +22,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time diff --git a/examples/example_weak_SOD.py b/examples/example_weak_SOD.py index 77776999..1116027a 100644 --- a/examples/example_weak_SOD.py +++ b/examples/example_weak_SOD.py @@ -19,9 +19,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution device = torch.device('cpu') diff --git a/examples/example_weak_Schrodinger.py b/examples/example_weak_Schrodinger.py index c9dbeeed..8b7260ff 100644 --- a/examples/example_weak_Schrodinger.py +++ b/examples/example_weak_Schrodinger.py @@ -223,7 +223,7 @@ def v(grid): if not(os.path.isdir(img_dir)): os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'autograd', weak_form=weak_form).solve(lambda_bound=1, verbose=1, learning_rate=0.09, + model = Solver(grid, equation, model, 'autograd', weak_form=weak_form).solve(lambda_bound=1, verbose=True, learning_rate=0.09, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, save_always=False,no_improvement_patience=10,loss_oscillation_window=10, print_every=10, optimizer_mode='LBFGS',step_plot_print=False, step_plot_save=False, image_save_dir=img_dir) end = time.time() diff --git a/tedeous/cache.py b/tedeous/cache.py index 7a278352..9d2ef037 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -183,7 +183,7 @@ def closure(): self.save_model(cache_model,cache_model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir, name=name) - def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> tuple[Any, dict]: + def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> Tuple[Any, dict]: """ Smth @@ -217,7 +217,7 @@ def closure(): def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ - tuple[Any, None], tuple[Any, Union[dict, Any]]]: + Tuple[Any, None], Tuple[Any, Union[dict, Any]]]: """ Smth @@ -254,7 +254,7 @@ def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, cache_verbose: bool,model_randomize_parameter: Union[float, None], - cache_model: torch.nn.Sequential, weak_form: None = None) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: + cache_model: torch.nn.Sequential, weak_form: None = None) -> Union[Tuple[Any, Any], Tuple[Any, Tensor]]: """ Restores the model from the cache and uses it for retraining. diff --git a/tedeous/config.py b/tedeous/config.py index d819daf7..4115f54c 100644 --- a/tedeous/config.py +++ b/tedeous/config.py @@ -85,7 +85,7 @@ def check_param_name(module_name: str, param_name: str) -> bool: return False class Config: - def __init__(self: Union[str, Optional], *args): + def __init__(self, *args): """ We initialize config with default one @@ -122,7 +122,7 @@ def __init__(self: Union[str, Optional], *args): elif len(args) > 1: print('Too much initialization args, using default config') - def set_parameter(self, parameter_string: str, value: Union[bool,float, int, None]): + def set_parameter(self, parameter_string: str, value: Union[bool, float, int, None]): """ We may want to just change default config parameters manually, without loading the .json diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index 485aa36a..31df5afd 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -130,7 +130,7 @@ def second_order_shift(diff: list, axis: int, mode: str) -> list: return [diff_3, diff_2, diff_1] @staticmethod - def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list]: + def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: """ Building second order (in terms of accuracy) finite-difference stencil. diff --git a/tedeous/metrics.py b/tedeous/metrics.py index e0452982..da5a6ada 100644 --- a/tedeous/metrics.py +++ b/tedeous/metrics.py @@ -1,9 +1,9 @@ import torch import numpy as np -from typing import Union +from typing import Union, Tuple from tedeous import input_preprocessing -from tedeous import points_type +from tedeous.points_type import Points_type flatten_list = lambda t: [item for sublist in t for item in sublist] @@ -360,6 +360,9 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa self.prepared_bconds = equal_cls.bnd_prepare() self.model = model self.mode = mode + if self.mode == 'NN': + self.grid_dict = Points_type.grid_sort(self.grid) + self.sorted_grid = torch.cat(list(self.grid_dict.values())) def apply_operator(self, operator: list) -> torch.Tensor: """ @@ -415,9 +418,7 @@ def b_op_val_calc(self, bcond: list) -> torch.Tensor: if bop == None or bop == [[1, [None], 1]]: if self.mode == 'NN': - grid_dict = points_type.Points_type.grid_sort(self.grid) - sorted_grid = torch.cat(list(grid_dict.values())) - b_op_val = self.model(sorted_grid)[:, var].reshape(-1, 1) + b_op_val = self.model(self.sorted_grid)[:, var].reshape(-1, 1) elif self.mode == 'autograd': b_op_val = self.model(self.grid)[:, var].reshape(-1, 1) elif self.mode == 'mat': @@ -429,7 +430,7 @@ def b_op_val_calc(self, bcond: list) -> torch.Tensor: b_op_val = self.apply_operator(bop) return b_op_val - def apply_bconds_operator(self) -> tuple[torch.Tensor, torch.Tensor]: + def apply_bconds_operator(self) -> Tuple[torch.Tensor, torch.Tensor]: """ Auxiliary function. Serves only to evaluate boundary values and true boundary values. @@ -516,7 +517,7 @@ def l2_loss(self, lambda_bound: Union[int, float] = 10) -> torch.Tensor: torch.mean((b_val - true_b_val) ** 2, 0)) return loss - def weak_loss(self, weak_form: list, lambda_bound: Union[int, float] = 10) -> torch.Tensor: + def weak_loss(self, weak_form: Union[None, list], lambda_bound: Union[int, float] = 10) -> torch.Tensor: """ Weak solution of O/PDE problem. diff --git a/tedeous/points_type.py b/tedeous/points_type.py index 09c548d6..ff797084 100644 --- a/tedeous/points_type.py +++ b/tedeous/points_type.py @@ -19,7 +19,7 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: shift: shift value. Returns: - grid_shift: shifted array of a n-D points. + shifted array of a n-D points. """ grid_shift = grid.clone() grid_shift[:, axis] = grid[:, axis] + shift @@ -40,7 +40,7 @@ def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: hull: initial array of a n-D points. Returns: - in_hull_array: array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. + array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. """ if p.shape[1] > 1: @@ -110,7 +110,7 @@ def grid_sort(grid: torch.Tensor) -> dict: grid: array of a n-D points. Returns: - grid_dict: sorted grid in each subset (see Points_type.point_typization). + sorted grid in each subset (see Points_type.point_typization). """ point_type = Points_type.point_typization(grid) From 5bbd5494575431dad86717feb930918588baa1be Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 18 Dec 2022 15:35:17 +0300 Subject: [PATCH 116/225] Docs fix --- docs/source/modules/config.rst | 16 ++++++++++ docs/source/modules/input_preprocessing.rst | 24 ++++++++++++++ docs/source/modules/metrics.rst | 26 +++++++++++++++ docs/source/modules/solver.rst | 11 +++++++ tedeous/cache.py | 20 +++++------- tedeous/config.py | 22 +++++++++---- tedeous/finite_diffs.py | 6 ++-- tedeous/input_preprocessing.py | 35 ++++++++++----------- tedeous/metrics.py | 31 +++++++++--------- tedeous/solver.py | 7 ++--- 10 files changed, 138 insertions(+), 60 deletions(-) diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst index 24cc6760..6c9ae80b 100644 --- a/docs/source/modules/config.rst +++ b/docs/source/modules/config.rst @@ -7,3 +7,19 @@ Config .. autoclass:: tedeous.config.Config :no-inherited-members: :no-undoc-members: + +Auxiliary functions +~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: tedeous.config.read_config + :no-inherited-members: + :no-undoc-members: + +.. autofunction:: tedeous.config.check_module_name + :no-inherited-members: + :no-undoc-members: + +.. autofunction:: tedeous.config.check_param_name + :no-inherited-members: + :no-undoc-members: + diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 16734a30..d7424acf 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -8,3 +8,27 @@ Equation .. autoclass:: tedeous.input_preprocessing.Equation :no-inherited-members: :no-undoc-members: + +Equation_Mixin +~~~~~~~~~~~~~~ +.. autoclass:: tedeous.input_preprocessing.Equation_Mixin + :no-inherited-members: + :no-undoc-members: + +Equation_NN +~~~~~~~~~~~ +.. autoclass:: tedeous.input_preprocessing.Equation_NN + :no-inherited-members: + :no-undoc-members: + +Equation_autograd +~~~~~~~~~~~~~~~~~ +.. autoclass:: tedeous.input_preprocessing.Equation_autograd + :no-inherited-members: + :no-undoc-members: + +Equation_mat +~~~~~~~~~~~~~~~~~ +.. autoclass:: tedeous.input_preprocessing.Equation_mat + :no-inherited-members: + :no-undoc-members: diff --git a/docs/source/modules/metrics.rst b/docs/source/modules/metrics.rst index 6e18a548..74df6b04 100644 --- a/docs/source/modules/metrics.rst +++ b/docs/source/modules/metrics.rst @@ -2,9 +2,35 @@ Metrics ======= +Solution +~~~~~~~~ +.. autoclass:: tedeous.metrics.Solution + :no-inherited-members: + :no-undoc-members: + +Derivative +~~~~~~~~~~ +.. autoclass:: tedeous.metrics.Derivative + :no-inherited-members: + :no-undoc-members: + Derivative_NN ~~~~~~~~~~~~~ .. autoclass:: tedeous.metrics.Derivative_NN :no-inherited-members: :no-undoc-members: + +Derivative_autograd +~~~~~~~~~~~~~ + +.. autoclass:: tedeous.metrics.Derivative_autograd + :no-inherited-members: + :no-undoc-members: + +Derivative_mat +~~~~~~~~~~~~~ + +.. autoclass:: tedeous.metrics.Derivative_mat + :no-inherited-members: + :no-undoc-members: diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst index f57e2859..4fd5ecf0 100644 --- a/docs/source/modules/solver.rst +++ b/docs/source/modules/solver.rst @@ -2,6 +2,17 @@ Solver ====== +Solver +~~~~~~ + .. autoclass:: tedeous.solver.Solver :no-inherited-members: :no-undoc-members: + +Auxiliary functions +~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: tedeous.solver.grid_format_prepare + :no-inherited-members: + :no-undoc-members: + diff --git a/tedeous/cache.py b/tedeous/cache.py index 9d2ef037..fd7863e2 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -41,22 +41,18 @@ def randomize_params(m): def cache_lookup(self, lambda_bound: float = 0.001, weak_form: None = None, cache_dir: str = '../cache/', - nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: + nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Tuple[dict, torch.Tensor]: ''' Looking for a saved cache. Args: - lambda_bound: float - an arbitrary chosen constant, influence only convergence speed. - cache_dir: str - directory where saved cache in. - nmodels: - ? - cache_verbose: bool - more detailed info about models in cache. + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + cache_dir: directory where saved cache in. + nmodels: smth + cache_verbose: more detailed info about models in cache. Returns: - best_checkpoint + best_checkpoint min_loss minimum error in pre-trained error @@ -270,8 +266,8 @@ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, Returns: - model: NN or mat - min_loss: min loss as is. + * **model** - NN or mat + * **min_loss** - min loss as is. """ r = self.create_random_fn(model_randomize_parameter) diff --git a/tedeous/config.py b/tedeous/config.py index 4115f54c..3034ad5b 100644 --- a/tedeous/config.py +++ b/tedeous/config.py @@ -3,7 +3,17 @@ import json -def read_config(name): +def read_config(name: str) -> json: + """ + Read some config + + Args: + name: config name. + + Returns: + json config. + + """ with open(name, 'r') as config_file: config_data = json.load(config_file) return config_data @@ -59,7 +69,7 @@ def check_module_name(module_name: str) -> bool: module_name: first level of a parameter of a custom config. Returns: - module_correctness: if module presents in 'default' config. + if module presents in 'default' config. """ if module_name in default_config.keys(): return True @@ -77,7 +87,7 @@ def check_param_name(module_name: str, param_name: str) -> bool: param_name: specific parameter name. Returns: - module_correctness: true if module presents in 'default' config. + true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): return True @@ -96,7 +106,7 @@ def __init__(self, *args): config_path: path to a custom config Returns: - self: config used in solver.optimization_solver function + config used in solver.optimization_solver function """ @@ -130,8 +140,8 @@ def set_parameter(self, parameter_string: str, value: Union[bool, float, int, No We run checks to see we set them correctly Args: - parameter_string: string in format 'module.parameter'. - value: value for the parameter. + * **parameter_string** - string in format 'module.parameter'.\n + * **value** - value for the parameter. """ diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index 31df5afd..2a2eec2e 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -140,8 +140,8 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[li axes_mode: 'central' or combination of 'f' and 'b'. Returns: - Transformed axes due to finite difference mode;\n - List, which contains directions (i.e, 'central', 'f', 'b'). + **finite_diff**: Transformed axes due to finite difference mode;\n + **direction_list**: List, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] @@ -177,7 +177,7 @@ def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). Returns: - sign_list: list, with signs for corresponding points. + list, with signs for corresponding points. """ sign_list = [1] for i in range(order): diff --git a/tedeous/input_preprocessing.py b/tedeous/input_preprocessing.py index 88a34f80..3666cf39 100644 --- a/tedeous/input_preprocessing.py +++ b/tedeous/input_preprocessing.py @@ -18,7 +18,7 @@ def operator_unify(operator: list) -> list: operator: operator in input form. Returns: - unified_operator: operator in unified form for preprocessing. + operator in unified form for preprocessing. """ unified_operator = [] for term in operator: @@ -54,7 +54,7 @@ def op_dict_to_list(opdict: dict) -> list: opdict: operator in dict form. Returns: - oplist: operator in list (input) form. + operator in list (input) form. """ return list([list(term.values()) for term in opdict.values()]) @@ -68,7 +68,7 @@ def closest_point(grid: torch.Tensor, target_point: float) -> int: target_point: boundary point. Returns: - min_pos: position of the boundary point on the grid. + position of the boundary point on the grid. """ min_dist = np.inf pos = 0 @@ -91,7 +91,7 @@ def bndpos(grid: torch.Tensor, bnd: torch.Tensor) -> Union[list, int]: bnd: boundary conditions. Returns: - bndposlist: list of positions of the boundary points on the grid. + list of positions of the boundary points on the grid. """ if grid.shape[0] == 1: grid = grid.reshape(-1,1) @@ -135,7 +135,7 @@ def bnd_unify(bconds: list) -> list: bconds: boundary in conventional form (see examples). Returns: - unified_bconds: boundary in input-friendly form. + boundary in input-friendly form. """ if bconds==None: return None @@ -214,7 +214,7 @@ def operator_to_type_op(self, unified_operator: list, nvars: int, axes_scheme_ty axes_scheme_type: 'central' or combination of 'f' and 'b'. Returns: - fin_diff_op: list, where the conventional operator changed to steps and signs (see scheme_build function description). + list, where the conventional operator changed to steps and signs (see scheme_build function description). """ fin_diff_op = [] for term in unified_operator: @@ -260,7 +260,7 @@ def finite_diff_scheme_to_grid_list(self, finite_diff_scheme: list, grid_points: grid: array of a n-D points. Returns: - s_grid_list: list, where the steps and signs changed to grid and signs. + list, where the steps and signs changed to grid and signs. """ s_grid_list = [] for i, shifts in enumerate(finite_diff_scheme): @@ -283,7 +283,7 @@ def type_op_to_grid_shift_op(self, fin_diff_op: list, grid_points: torch.Tensor) grid_points: grid with sorted nodes. Returns: - shift_grid_op: final form of differential operator used in the algorithm for single grid type. + final form of differential operator used in the algorithm for single grid type. """ shift_grid_op = [] for term1 in fin_diff_op: @@ -322,7 +322,7 @@ def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: grid_dict: result Points_type.grid_sort Returns: - operator_list: final form of differential operator used in the algorithm for subset grid types. + final form of differential operator used in the algorithm for subset grid types. """ operator_list = [] nvars = list(grid_dict.values())[0].shape[-1] @@ -338,7 +338,7 @@ def operator_prepare(self) -> list: Changes the operator in conventional form to the input one. Returns: - operator_list: final form of differential operator used in the algorithm for subset grid types. + final form of differential operator used in the algorithm for subset grid types. """ grid_dict = self.grid_sort(self.grid) nvars = self.grid.shape[-1] @@ -366,7 +366,7 @@ def bnd_prepare(self): Prepares boundary conditions from conventional form to input form. Returns: - prepared_bcond: boundary in input form. + boundary in input form. """ grid_dict = self.grid_sort(self.grid) sorted_grid = torch.cat(list(grid_dict.values())) @@ -407,7 +407,6 @@ def __init__(self, grid: torch.Tensor, operator: Union[list, dict], bconds: list grid: array of a n-D points. operator: equation. bconds: boundary conditions. - """ self.grid = grid self.operator = operator @@ -423,8 +422,7 @@ def expand_coeffs_autograd(unified_operator: list, grid: torch.Tensor) -> list: grid: array of a n-D points. Returns: - autograd_op: prepared autograd operator. - + prepared autograd operator. """ autograd_op=[] for term in unified_operator: @@ -447,7 +445,7 @@ def operator_prepare(self): Changes the operator in conventional form to the input one. Returns: - operator_list: final form of differential operator used in the algorithm. + final form of differential operator used in the algorithm. """ if type(self.operator) is list and type(self.operator[0]) is dict: num_of_eq = len(self.operator) @@ -468,7 +466,7 @@ def bnd_prepare(self): Prepares boundary conditions from conventional form to input form. Returns: - prepared_bconds: boundary in input form. + boundary in input form. """ bconds = self.bnd_unify(self.bconds) if bconds==None: @@ -527,8 +525,7 @@ def bnd_prepare(self) -> list: Prepares boundary conditions from conventional form to input form. Returns: - prepared_bconds: final form of boundary conditions used in the algorithm. - + final form of boundary conditions used in the algorithm. """ prepared_bconds=[] bconds = self.bnd_unify(self.bconds) @@ -588,7 +585,7 @@ def set_strategy(self, strategy: str) -> Union[Equation_NN, Equation_mat, Equati strategy: Calculation method. (i.e., "NN", "autograd", "mat"). Returns: - chosen_method: A given calculation method. + A given calculation method. """ if strategy == 'NN': return Equation_NN(self.grid, self.operator, self.bconds, h=self.h, inner_order=self.inner_order, boundary_order=self.boundary_order) diff --git a/tedeous/metrics.py b/tedeous/metrics.py index da5a6ada..ae0e8bef 100644 --- a/tedeous/metrics.py +++ b/tedeous/metrics.py @@ -20,7 +20,7 @@ def __init__(self, grid: torch.Tensor, model: torch.nn.Sequential): Args: grid: array of a n-D points. - model: neural network. + model: neural network. """ self.grid = grid @@ -34,8 +34,7 @@ def take_derivative(self, term: Union[list, int, torch.Tensor]) -> torch.Tensor: Args: term: differential operator in conventional form. Returns: - der_term: resulting field, computed on a grid. - + resulting field, computed on a grid. """ coeff = term[0] @@ -82,7 +81,7 @@ def nn_autograd_mixed(model: torch.nn.Sequential, points, axis=[0]): axis: smth Returns: - gradient_full: smth + smth """ points.requires_grad = True gradient_full = [] @@ -106,7 +105,7 @@ def take_derivative(self, term) -> torch.Tensor: term: differential operator in conventional form. Returns: - der_term: resulting field, computed on a grid. + resulting field, computed on a grid. """ coeff = term[0] @@ -133,7 +132,6 @@ def __init__(self, grid, model): Args: grid: array of a n-D points. model: random matrix. - """ self.grid = grid self.model = model @@ -148,7 +146,7 @@ def derivative_1d(model: torch.Tensor, grid: torch.Tensor) -> torch.Tensor: grid: array of a n-D points. Returns: - du: computed derivative along one dimension. + computed derivative along one dimension. """ u = model.reshape(-1) @@ -176,7 +174,7 @@ def derivative(u_tensor: torch.Tensor, h_tensor: torch.Tensor, axis: int, boundary_order: accuracy boundary order for finite difference. Default = 2 Returns: - du: computed derivative. + computed derivative. """ if (u_tensor.shape[0] == 1): @@ -287,7 +285,7 @@ def take_derivative(self, term) -> torch.Tensor: term: differential operator in conventional form. Returns: - der_term: resulting field, computed on a grid. + resulting field, computed on a grid. """ coeff = term[0] @@ -330,7 +328,7 @@ def set_strategy(self, strategy: str) -> Union[Derivative_NN, Derivative_autogra strategy: Calculation method. (i.e., "NN", "autograd", "mat"). Returns: - prepared_equation: equation in input form for a given calculation method. + equation in input form for a given calculation method. """ if strategy == 'NN': return Derivative_NN(self.grid, self.model) @@ -373,7 +371,7 @@ def apply_operator(self, operator: list) -> torch.Tensor: input_preprocessing.operator_prepare() Returns: - total: smth + smth """ derivative = Derivative(self.grid, self.model).set_strategy(self.mode).take_derivative @@ -395,7 +393,7 @@ def apply_bconds_set(self, operator_set: list) -> torch.Tensor: input_preprocessing.operator_prepare(). Returns: - field_part: smth + smth """ field_part = [] for operator in operator_set: @@ -411,7 +409,7 @@ def b_op_val_calc(self, bcond: list) -> torch.Tensor: bcond: terms of prepared boundary conditions (see input_preprocessing.bnd_prepare) in input form. Returns: - b_op_val: calculated operator on the boundary. + calculated operator on the boundary. """ bop = bcond[1] var = bcond[3] @@ -479,7 +477,7 @@ def l2_loss(self, lambda_bound: Union[int, float] = 10) -> torch.Tensor: Args: lambda_bound: an arbitrary chosen constant, influence only convergence speed. Returns: - loss: model loss. + model loss. """ if self.mode == 'mat' or self.mode == 'autograd': if self.prepared_bconds == None: @@ -525,7 +523,7 @@ def weak_loss(self, weak_form: Union[None, list], lambda_bound: Union[int, float weak_form: list of basis functions. lambda_bound: const regularization parameter. Returns: - loss: model loss. + model loss. """ def integration(func, grid, pow='sqrt'): @@ -622,4 +620,5 @@ def loss_evaluation(self, lambda_bound: Union[int, float] = 10, weak_form: Union if weak_form == None or weak_form == []: return self.l2_loss(lambda_bound=lambda_bound) else: - return self.weak_loss(weak_form, lambda_bound=lambda_bound) \ No newline at end of file + return self.weak_loss(weak_form, lambda_bound=lambda_bound) + diff --git a/tedeous/solver.py b/tedeous/solver.py index 00ededed..4ce70309 100644 --- a/tedeous/solver.py +++ b/tedeous/solver.py @@ -20,7 +20,7 @@ def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: mode: Calculation method. (i.e., "NN", "autograd", "mat"). Returns: - grid: grid in a general form. + grid in a general form. """ if type(coord_list) == torch.Tensor: @@ -75,7 +75,7 @@ def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. Returns: - optimizer: torch.optimizer object as is. + torch.optimizer object as is. """ if optimizer == 'Adam': if self.mode == 'NN' or self.mode == 'autograd': @@ -212,8 +212,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea image_save_dir: a directory where saved figure in. Returns: - model: neural network. - + neural network. """ r = self.create_random_fn(model_randomize_parameter) From 6835652a6c5ad0a7cc70016ad472a5bc1b88c63f Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 18 Dec 2022 15:42:16 +0300 Subject: [PATCH 117/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index d7424acf..1a727b44 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -9,9 +9,9 @@ Equation :no-inherited-members: :no-undoc-members: -Equation_Mixin +EquationMixin ~~~~~~~~~~~~~~ -.. autoclass:: tedeous.input_preprocessing.Equation_Mixin +.. autoclass:: tedeous.input_preprocessing.EquationMixin :no-inherited-members: :no-undoc-members: From a9eb6b9df859373e27a0a4981ae98b092c3174aa Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 18 Dec 2022 15:52:40 +0300 Subject: [PATCH 118/225] Docs fix --- docs/source/modules/config.rst | 6 +++--- tedeous/cache.py | 21 ++++++++++----------- tedeous/config.py | 4 ++-- tedeous/finite_diffs.py | 4 ++-- tedeous/metrics.py | 4 ++-- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst index 6c9ae80b..b6ac286a 100644 --- a/docs/source/modules/config.rst +++ b/docs/source/modules/config.rst @@ -11,15 +11,15 @@ Config Auxiliary functions ~~~~~~~~~~~~~~~~~~~ -.. autofunction:: tedeous.config.read_config +.. automodule:: tedeous.config.read_config :no-inherited-members: :no-undoc-members: -.. autofunction:: tedeous.config.check_module_name +.. automodule:: tedeous.config.check_module_name :no-inherited-members: :no-undoc-members: -.. autofunction:: tedeous.config.check_param_name +.. automodule:: tedeous.config.check_param_name :no-inherited-members: :no-undoc-members: diff --git a/tedeous/cache.py b/tedeous/cache.py index fd7863e2..681e33bc 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -52,10 +52,9 @@ def cache_lookup(self, lambda_bound: float = 0.001, weak_form: None = None, cach cache_verbose: more detailed info about models in cache. Returns: - best_checkpoint + * **best_checkpoint** -- smth.\n + * **min_loss** -- minimum error in pre-trained error. - min_loss - minimum error in pre-trained error ''' files=glob.glob(cache_dir+'*.tar') # if files not found @@ -185,11 +184,11 @@ def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool Args: trained_model: smth - cache_verbose: more detailed info about models in cache. + cache_verbose: detailed info about models in cache. Returns: - model: NN or mat - optimizer.state_dict: dict + * **model** -- NN or mat.\n + * **optimizer_state** -- dict. """ optimizer = torch.optim.Adam(self.model.parameters(), lr=0.001) @@ -219,11 +218,11 @@ def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ Args: cache_checkpoint: smth - cache_verbose: more detailed info about models in cache. + cache_verbose: detailed info about models in cache. Returns: - model: - optimizer_state: + * **model** -- model.\n + * **optimizer_state** -- smth """ # do nothing if cache is empty if cache_checkpoint==None: @@ -266,8 +265,8 @@ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, Returns: - * **model** - NN or mat - * **min_loss** - min loss as is. + * **model** -- NN or mat.\n + * **min_loss** -- min loss as is. """ r = self.create_random_fn(model_randomize_parameter) diff --git a/tedeous/config.py b/tedeous/config.py index 3034ad5b..55347208 100644 --- a/tedeous/config.py +++ b/tedeous/config.py @@ -140,8 +140,8 @@ def set_parameter(self, parameter_string: str, value: Union[bool, float, int, No We run checks to see we set them correctly Args: - * **parameter_string** - string in format 'module.parameter'.\n - * **value** - value for the parameter. + parameter_string: string in format 'module.parameter'. + value: value for the parameter. """ diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index 2a2eec2e..7928ce35 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -140,8 +140,8 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[li axes_mode: 'central' or combination of 'f' and 'b'. Returns: - **finite_diff**: Transformed axes due to finite difference mode;\n - **direction_list**: List, which contains directions (i.e, 'central', 'f', 'b'). + * **finite_diff** -- Transformed axes due to finite difference mode;\n + * **direction_list** -- List, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] diff --git a/tedeous/metrics.py b/tedeous/metrics.py index ae0e8bef..9dc9d306 100644 --- a/tedeous/metrics.py +++ b/tedeous/metrics.py @@ -433,8 +433,8 @@ def apply_bconds_operator(self) -> Tuple[torch.Tensor, torch.Tensor]: Auxiliary function. Serves only to evaluate boundary values and true boundary values. Returns: - b_val: calculated model boundary values. - true_b_val: true grid boundary values. + * **b_val** -- calculated model boundary values.\n + * **true_b_val** -- true grid boundary values. """ true_b_val_list = [] b_val_list = [] From 9bd74623736ab5d5e9c668dd76d05db215c36244 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 18 Dec 2022 22:57:05 +0300 Subject: [PATCH 119/225] Update config.rst --- docs/source/modules/config.rst | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst index b6ac286a..fb0f7557 100644 --- a/docs/source/modules/config.rst +++ b/docs/source/modules/config.rst @@ -1,25 +1,7 @@ Config ====== -Config -~~~~~~ - -.. autoclass:: tedeous.config.Config - :no-inherited-members: - :no-undoc-members: - -Auxiliary functions -~~~~~~~~~~~~~~~~~~~ - -.. automodule:: tedeous.config.read_config - :no-inherited-members: - :no-undoc-members: - -.. automodule:: tedeous.config.check_module_name - :no-inherited-members: - :no-undoc-members: - -.. automodule:: tedeous.config.check_param_name +.. automodule:: tedeous.config.Config :no-inherited-members: :no-undoc-members: From 70127c0d70ef49eed046c0bab89c5dbc7d1e107f Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 18 Dec 2022 23:05:44 +0300 Subject: [PATCH 120/225] Update config.rst --- docs/source/modules/config.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst index fb0f7557..de8f0619 100644 --- a/docs/source/modules/config.rst +++ b/docs/source/modules/config.rst @@ -1,7 +1,7 @@ Config ====== -.. automodule:: tedeous.config.Config +.. automodule:: tedeous.config :no-inherited-members: :no-undoc-members: From 6dfeb68f3f0b2d8dfce4168175cf19c3826ba837 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 18 Dec 2022 23:37:29 +0300 Subject: [PATCH 121/225] Doc fix --- docs/source/modules/config.rst | 9 ++++++++- docs/source/modules/solver.rst | 2 +- tedeous/finite_diffs.py | 8 ++++---- tedeous/metrics.py | 17 +++++++++++++---- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst index de8f0619..b541a8eb 100644 --- a/docs/source/modules/config.rst +++ b/docs/source/modules/config.rst @@ -1,7 +1,14 @@ Config ====== -.. automodule:: tedeous.config +Config +~~~~~~ +.. autoclass:: tedeous.config.Config :no-inherited-members: :no-undoc-members: +Auxiliary functions +~~~~~~~~~~~~~~~~~~~ +.. automodule:: tedeous.config + :no-inherited-members: + :no-undoc-members: diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst index 4fd5ecf0..c9c60d32 100644 --- a/docs/source/modules/solver.rst +++ b/docs/source/modules/solver.rst @@ -12,7 +12,7 @@ Solver Auxiliary functions ~~~~~~~~~~~~~~~~~~~ -.. autofunction:: tedeous.solver.grid_format_prepare +.. automodule:: tedeous.solver :no-inherited-members: :no-undoc-members: diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index 7928ce35..fd86d1d7 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -46,8 +46,8 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: axes_mode: 'central' or combination of 'f' and 'b'. Returns: - - finite_diff: transformed axes due to finite difference mode. - - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + * **finite_diff** -- Transformed axes due to finite difference mode;\n + * **direction_list** -- List, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] @@ -89,7 +89,7 @@ def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). Returns: - sign_list: list, with signs for corresponding points. + list, with signs for corresponding points. """ sign_list = [1] @@ -114,7 +114,7 @@ def second_order_shift(diff: list, axis: int, mode: str) -> list: mode: the finite difference mode (i.e., forward, backward, central). Returns: - diff_list: list with shifted points. + list with shifted points. """ diff_1 = copy(diff) diff_2 = copy(diff) diff --git a/tedeous/metrics.py b/tedeous/metrics.py index 9dc9d306..4e85c928 100644 --- a/tedeous/metrics.py +++ b/tedeous/metrics.py @@ -76,8 +76,8 @@ def nn_autograd_mixed(model: torch.nn.Sequential, points, axis=[0]): Computes derivative on the grid using autograd method. Args: - model: neural network - points: points, where numerical derivative is calculated + model: neural network. + points: points, where numerical derivative is calculated. axis: smth Returns: @@ -99,7 +99,7 @@ def nn_autograd_mixed(model: torch.nn.Sequential, points, axis=[0]): def take_derivative(self, term) -> torch.Tensor: """ Auxiliary function serves for single differential operator resulting field - derivation + derivation. Args: term: differential operator in conventional form. @@ -526,7 +526,16 @@ def weak_loss(self, weak_form: Union[None, list], lambda_bound: Union[int, float model loss. """ - def integration(func, grid, pow='sqrt'): + def integration(func: torch.Tensor, grid: torch.Tensor, pow: str ='sqrt'): + """ + Function realize 1-space/multiple integrands, where func=(L(u)-f)*weak_form subintegrands function and + definite integral parameter is grid. + + Args: + func: basis function. + grid: array of a n-D points. + pow: (sqrt ar abs) power of func points. + """ if grid.shape[-1] == 1: column = -1 From 0effcb9b55a5107d054a03af2a2fa1f860aae63c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 19 Dec 2022 00:03:51 +0300 Subject: [PATCH 122/225] docs fix --- docs/source/modules/solver.rst | 8 -------- docs/source/tedeous/install.rst | 8 +++++++- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst index c9c60d32..3b54c9f7 100644 --- a/docs/source/modules/solver.rst +++ b/docs/source/modules/solver.rst @@ -3,16 +3,8 @@ Solver ====== Solver -~~~~~~ - -.. autoclass:: tedeous.solver.Solver - :no-inherited-members: - :no-undoc-members: - -Auxiliary functions ~~~~~~~~~~~~~~~~~~~ .. automodule:: tedeous.solver :no-inherited-members: :no-undoc-members: - diff --git a/docs/source/tedeous/install.rst b/docs/source/tedeous/install.rst index 302c7700..100df957 100644 --- a/docs/source/tedeous/install.rst +++ b/docs/source/tedeous/install.rst @@ -1,4 +1,10 @@ Install ======= -TBA... \ No newline at end of file +At the moment, it is possible to install the TEDEouS only by cloning the repository from github. +You can use either Github Desktop for cloning or command line using the following: +:: + + git clone https://github.com/ITMO-NSS-team/torch_DE_solver.git + cd torch_DE_solver + pip install -r requirements.txt \ No newline at end of file From 990393a4e1ab7d1725512a622e29e56a90b23786 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Tue, 20 Dec 2022 22:22:49 +0300 Subject: [PATCH 123/225] Update install.rst --- docs/source/tedeous/install.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/tedeous/install.rst b/docs/source/tedeous/install.rst index 100df957..36b2f617 100644 --- a/docs/source/tedeous/install.rst +++ b/docs/source/tedeous/install.rst @@ -2,9 +2,10 @@ Install ======= At the moment, it is possible to install the TEDEouS only by cloning the repository from github. + You can use either Github Desktop for cloning or command line using the following: :: git clone https://github.com/ITMO-NSS-team/torch_DE_solver.git cd torch_DE_solver - pip install -r requirements.txt \ No newline at end of file + pip install -r requirements.txt From 573ed6b427a1f3e1f7b9a4fe64d3c8902e4b3586 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Tue, 20 Dec 2022 23:29:17 +0300 Subject: [PATCH 124/225] docs --- docs/source/examples/schrodinger.rst | 12 ++++++++++++ docs/source/tedeous/examples.rst | 23 ++++++++++++++++++++++- docs/source/tedeous/guide.rst | 3 +-- tedeous/device.py | 13 +++++++++++++ tedeous/finite_diffs.py | 4 ++-- tedeous/input_preprocessing.py | 18 +++++++++++------- tedeous/points_type.py | 11 ++++++----- 7 files changed, 67 insertions(+), 17 deletions(-) create mode 100644 docs/source/examples/schrodinger.rst create mode 100644 tedeous/device.py diff --git a/docs/source/examples/schrodinger.rst b/docs/source/examples/schrodinger.rst new file mode 100644 index 00000000..b0858bb4 --- /dev/null +++ b/docs/source/examples/schrodinger.rst @@ -0,0 +1,12 @@ +Schrodinger equation +==================== + +Problem statement +~~~~~~~~~~~~~~~~~ +Equation: + +.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0 + +Boundary and initial condition: + +.. math:: x \\in [-5,5], \\quad t \\in [0, \\pi/2], h(t, -5) = h(t,5) \n h_x(t, -5) = h_x(t,5), h(0,x) = 2 sech(x) \ No newline at end of file diff --git a/docs/source/tedeous/examples.rst b/docs/source/tedeous/examples.rst index 88c00f17..0290b595 100644 --- a/docs/source/tedeous/examples.rst +++ b/docs/source/tedeous/examples.rst @@ -1,4 +1,25 @@ Examples ======== -TBA... \ No newline at end of file +Here are some examples of solving O/PDEs. + +ODEs +~~~~ + +.. toctree:: + :maxdepth: 1 + + examples/lotka_volterra + examples/legendre + examples/painleve + +PDEs +~~~~ + +.. toctree:: + :maxdepth: 1 + + examples/schrodinger + examples/wave + examples/sod + diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst index 76866f2a..b880a103 100644 --- a/docs/source/tedeous/guide.rst +++ b/docs/source/tedeous/guide.rst @@ -1,4 +1,3 @@ -Quick guide +Quickstart =========== -TBA... \ No newline at end of file diff --git a/tedeous/device.py b/tedeous/device.py new file mode 100644 index 00000000..0a94f332 --- /dev/null +++ b/tedeous/device.py @@ -0,0 +1,13 @@ +import torch + +def set_device(*args): + if len(args) == 0: + if torch.has_cuda: + return torch.device('cuda') + elif torch.has_mps: + return torch.device('mps') + else: + return torch.device('cpu') + if len(args) == 1: + device = args[0] + return torch.device(device) \ No newline at end of file diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index fd86d1d7..1338614e 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -79,7 +79,7 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: return finite_diff, direction_list @staticmethod - def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: + def sign_order(order: Union[int, list], mode: str, h: float = 1 / 2) -> list: """ Determines the sign of the derivative for the corresponding transformation from Finite_diffs.scheme_build() @@ -166,7 +166,7 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[li return finite_diff, direction_list @staticmethod - def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: + def second_order_sign_order(order: Union[int,list], mode: str, h: float = 1/2) -> list: """ Determines the sign of the derivative for the corresponding point transformation from `Finite_diffs.scheme_build`.\n Same as `sign_order`, but more precise due to second order of accuracy. diff --git a/tedeous/input_preprocessing.py b/tedeous/input_preprocessing.py index 3666cf39..ccbc56d9 100644 --- a/tedeous/input_preprocessing.py +++ b/tedeous/input_preprocessing.py @@ -4,6 +4,9 @@ from tedeous.points_type import Points_type from tedeous.finite_diffs import Finite_diffs +from tedeous.device import set_device + +device = set_device() class EquationMixin(): """ @@ -70,6 +73,7 @@ def closest_point(grid: torch.Tensor, target_point: float) -> int: Returns: position of the boundary point on the grid. """ + grid = grid.to(device) min_dist = np.inf pos = 0 min_pos = 0 @@ -94,19 +98,19 @@ def bndpos(grid: torch.Tensor, bnd: torch.Tensor) -> Union[list, int]: list of positions of the boundary points on the grid. """ if grid.shape[0] == 1: - grid = grid.reshape(-1,1) - grid = grid.double() + grid = grid.reshape(-1,1).to(device) + grid = grid.double().to(device) def convert_to_double(bnd): if type(bnd) == list: for i, cur_bnd in enumerate(bnd): - bnd[i] = convert_to_double(cur_bnd) + bnd[i] = convert_to_double(cur_bnd).to(device) return bnd elif type(bnd) == np.array: - return torch.from_numpy(bnd).double() - return bnd.double() + return torch.from_numpy(bnd).double().to(device) + return bnd.double().to(device) - bnd = convert_to_double(bnd) + bnd = convert_to_double(bnd).to(device) def search_pos(bnd): if type(bnd) == list: @@ -127,7 +131,7 @@ def search_pos(bnd): return bndposlist @staticmethod - def bnd_unify(bconds: list) -> list: + def bnd_unify(bconds: list) -> Union[None, list]: """ Serves to add None instead of empty operator. diff --git a/tedeous/points_type.py b/tedeous/points_type.py index ff797084..955f173c 100644 --- a/tedeous/points_type.py +++ b/tedeous/points_type.py @@ -1,8 +1,9 @@ import numpy as np import torch from scipy.spatial import Delaunay +from tedeous.device import set_device - +device = set_device() class Points_type(): """ Discretizing the grid and allocating subsets for Finite Difference method. @@ -21,9 +22,9 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: Returns: shifted array of a n-D points. """ - grid_shift = grid.clone() + grid_shift = grid.clone().to(device) grid_shift[:, axis] = grid[:, axis] + shift - return grid_shift + return grid_shift.to(device) @staticmethod def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: @@ -75,7 +76,7 @@ def point_typization(grid: torch.Tensor) -> dict: direction_list = [] for axis in range(grid.shape[1]): for direction in range(2): - direction_list.append(Points_type.in_hull(Points_type.shift_points(grid, axis, (-1) ** direction * 0.0001), grid)) + direction_list.append(Points_type.in_hull(Points_type.shift_points(grid.to(device), axis, (-1) ** direction * 0.0001), grid.to(device))) direction_list = np.array(direction_list) direction_list = np.transpose(direction_list) @@ -113,7 +114,7 @@ def grid_sort(grid: torch.Tensor) -> dict: sorted grid in each subset (see Points_type.point_typization). """ - point_type = Points_type.point_typization(grid) + point_type = Points_type.point_typization(grid.to(device)) point_types = set(point_type.values()) grid_dict = {} for p_type in point_types: From e77b415f8a3b369889559cd47d655f9d78ea9512 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Tue, 20 Dec 2022 23:39:49 +0300 Subject: [PATCH 125/225] Update index.rst --- docs/source/tedeous/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 16f2e42c..c0d2f769 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -5,7 +5,7 @@ TEDEouS .. toctree:: :glob: - :maxdepth: 2 + :maxdepth: 1 guide install From aadc0e7f770d1fb7b2f00645820eb7ca19238141 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Tue, 20 Dec 2022 23:43:58 +0300 Subject: [PATCH 126/225] Delete schrodinger.rst --- docs/source/examples/schrodinger.rst | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 docs/source/examples/schrodinger.rst diff --git a/docs/source/examples/schrodinger.rst b/docs/source/examples/schrodinger.rst deleted file mode 100644 index b0858bb4..00000000 --- a/docs/source/examples/schrodinger.rst +++ /dev/null @@ -1,12 +0,0 @@ -Schrodinger equation -==================== - -Problem statement -~~~~~~~~~~~~~~~~~ -Equation: - -.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0 - -Boundary and initial condition: - -.. math:: x \\in [-5,5], \\quad t \\in [0, \\pi/2], h(t, -5) = h(t,5) \n h_x(t, -5) = h_x(t,5), h(0,x) = 2 sech(x) \ No newline at end of file From 9df1aac96b4ea4d935aad193344913edd9eb0b70 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Tue, 20 Dec 2022 23:45:03 +0300 Subject: [PATCH 127/225] Create schrodinger.rst --- docs/source/tedeous/examples/schrodinger.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/source/tedeous/examples/schrodinger.rst diff --git a/docs/source/tedeous/examples/schrodinger.rst b/docs/source/tedeous/examples/schrodinger.rst new file mode 100644 index 00000000..b0858bb4 --- /dev/null +++ b/docs/source/tedeous/examples/schrodinger.rst @@ -0,0 +1,12 @@ +Schrodinger equation +==================== + +Problem statement +~~~~~~~~~~~~~~~~~ +Equation: + +.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0 + +Boundary and initial condition: + +.. math:: x \\in [-5,5], \\quad t \\in [0, \\pi/2], h(t, -5) = h(t,5) \n h_x(t, -5) = h_x(t,5), h(0,x) = 2 sech(x) \ No newline at end of file From e6421a913c4148f550174d610b5e3fa5d04f8b58 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 23 Dec 2022 14:49:21 +0300 Subject: [PATCH 128/225] Update schrodinger.rst --- docs/source/tedeous/examples/schrodinger.rst | 190 ++++++++++++++++++- 1 file changed, 188 insertions(+), 2 deletions(-) diff --git a/docs/source/tedeous/examples/schrodinger.rst b/docs/source/tedeous/examples/schrodinger.rst index b0858bb4..2676aafe 100644 --- a/docs/source/tedeous/examples/schrodinger.rst +++ b/docs/source/tedeous/examples/schrodinger.rst @@ -5,8 +5,194 @@ Problem statement ~~~~~~~~~~~~~~~~~ Equation: -.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0 +.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0, \qquad x \in [-5,5], \quad t \in [0, \pi/2] Boundary and initial condition: -.. math:: x \\in [-5,5], \\quad t \\in [0, \\pi/2], h(t, -5) = h(t,5) \n h_x(t, -5) = h_x(t,5), h(0,x) = 2 sech(x) \ No newline at end of file +.. math:: h(t, -5) = h(t, 5), \quad h_x(t, -5) = h_x(t,5), \quad h(0,x) = 2 sech(x) + +Solution +~~~~~~~~ +First of all import all dependencies. + +.. code-block:: python + + import numpy as np + import torch + + from tedeous.solver import Solver + from tedeous.input_preprocessing import Equation + +After that let's define a computational grid. + +.. code-block:: python + x_grid = np.linspace(-5,5,n+1) + t_grid = np.linspace(0,np.pi/2,n+1) + x = torch.from_numpy(x_grid) + t = torch.from_numpy(t_grid) + grid = torch.cartesian_prod(x, t).float() + grid.to(device) + +Now let's define the boundary and initial conditions. +.. code-block:: python + fun = lambda x: 2/np.cosh(x) + + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + + + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) + + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + + + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] + + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + + + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] + + bop3_real = { + 'du/dx': + { + 'coeff': 1, + 'du/dx': [0], + 'pow': 1, + 'var': 0 + } + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + + bop3_imag = { + 'dv/dx': + { + 'coeff': 1, + 'dv/dx': [0], + 'pow': 1, + 'var': 1 + } + } + + + bcond_type = 'periodic' + + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] + +Now define the equation. +.. code-block:: python + schrodinger_eq_real = { + 'du/dt': + { + 'const': 1, + 'term': [1], + 'power': 1, + 'var': 0 + }, + '1/2*d2v/dx2': + { + 'const': 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 1 + }, + 'v * u**2': + { + 'const': 1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [1, 0] + }, + 'v**3': + { + 'const': 1, + 'term': [None], + 'power': 3, + 'var': 1 + } + + } + schrodinger_eq_imag = { + 'dv/dt': + { + 'const': 1, + 'term': [1], + 'power': 1, + 'var': 1 + }, + '-1/2*d2u/dx2': + { + 'const': - 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 0 + }, + '-u * v ** 2': + { + 'const': -1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [0, 1] + }, + '-u ** 3': + { + 'const': -1, + 'term': [None], + 'power': 3, + 'var': 0 + } + + } + + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + +Initialize the model. + +.. code-block:: python + model = torch.nn.Sequential( + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) + +Wrap grid, equation, conditions in one entity. This step requires to specify a calculation strategy. + +.. code-block:: python + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') + +And in the end you have to apply all these stuff in Solver class. + +.. code-block:: python + model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, + save_always=False,no_improvement_patience=500,print_every = None,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) \ No newline at end of file From 0fd53c3b971fc048f58811b8bb379e0212eac42b Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 23 Dec 2022 15:02:26 +0300 Subject: [PATCH 129/225] Update schrodinger.rst --- docs/source/tedeous/examples/schrodinger.rst | 84 +++++++++++--------- 1 file changed, 46 insertions(+), 38 deletions(-) diff --git a/docs/source/tedeous/examples/schrodinger.rst b/docs/source/tedeous/examples/schrodinger.rst index 2676aafe..94c13aa2 100644 --- a/docs/source/tedeous/examples/schrodinger.rst +++ b/docs/source/tedeous/examples/schrodinger.rst @@ -26,6 +26,7 @@ First of all import all dependencies. After that let's define a computational grid. .. code-block:: python + x_grid = np.linspace(-5,5,n+1) t_grid = np.linspace(0,np.pi/2,n+1) x = torch.from_numpy(x_grid) @@ -34,38 +35,40 @@ After that let's define a computational grid. grid.to(device) Now let's define the boundary and initial conditions. + .. code-block:: python + fun = lambda x: 2/np.cosh(x) - # u(x,0) = 2sech(x), v(x,0) = 0 - bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - # u(x,0) = 2sech(x) - bndval1_real = fun(bnd1_real[:,0]) + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) - # v(x,0) = 0 - bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) - # u(-5,t) = u(5,t) - bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() - bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() - bnd2_real = [bnd2_real_left,bnd2_real_right] + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] - # v(-5,t) = v(5,t) - bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() - bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() - bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] - # du/dx (-5,t) = du/dx (5,t) - bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() - bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() - bnd3_real = [bnd3_real_left, bnd3_real_right] + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] - bop3_real = { + bop3_real = { 'du/dx': { 'coeff': 1, @@ -73,13 +76,13 @@ Now let's define the boundary and initial conditions. 'pow': 1, 'var': 0 } - } - # dv/dx (-5,t) = dv/dx (5,t) - bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() - bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() - bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] - bop3_imag = { + bop3_imag = { 'dv/dx': { 'coeff': 1, @@ -87,20 +90,22 @@ Now let's define the boundary and initial conditions. 'pow': 1, 'var': 1 } - } + } - bcond_type = 'periodic' + bcond_type = 'periodic' - bconds = [[bnd1_real, bndval1_real, 0], - [bnd1_imag, bndval1_imag, 1], - [bnd2_real, 0, bcond_type], - [bnd2_imag, 1, bcond_type], - [bnd3_real, bop3_real, bcond_type], - [bnd3_imag, bop3_imag, bcond_type]] + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] Now define the equation. + .. code-block:: python + schrodinger_eq_real = { 'du/dt': { @@ -132,7 +137,7 @@ Now define the equation. } } - schrodinger_eq_imag = { + schrodinger_eq_imag = { 'dv/dt': { 'const': 1, @@ -162,13 +167,14 @@ Now define the equation. 'var': 0 } - } + } - schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] Initialize the model. .. code-block:: python + model = torch.nn.Sequential( torch.nn.Linear(2, 100), torch.nn.Tanh(), @@ -188,11 +194,13 @@ Initialize the model. Wrap grid, equation, conditions in one entity. This step requires to specify a calculation strategy. .. code-block:: python + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') And in the end you have to apply all these stuff in Solver class. .. code-block:: python + model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=500,print_every = None,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) \ No newline at end of file + save_always=False,no_improvement_patience=500,print_every = None, optimizer_mode='LBFGS', step_plot_print=False, step_plot_save=True, image_save_dir=img_dir) From b73781a15f68f64bda3b3b58197ada905700c0f6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 23 Dec 2022 16:10:18 +0300 Subject: [PATCH 130/225] Docs upd --- docs/source/tedeous/guide.rst | 4 ++-- docs/source/tedeous/index.rst | 1 + docs/source/tedeous/solve.rst | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 docs/source/tedeous/solve.rst diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst index b880a103..3272ac2c 100644 --- a/docs/source/tedeous/guide.rst +++ b/docs/source/tedeous/guide.rst @@ -1,3 +1,3 @@ -Quickstart -=========== +How it works +============ diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index c0d2f769..f35c89f6 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -8,5 +8,6 @@ TEDEouS :maxdepth: 1 guide + solve install examples diff --git a/docs/source/tedeous/solve.rst b/docs/source/tedeous/solve.rst new file mode 100644 index 00000000..88a42127 --- /dev/null +++ b/docs/source/tedeous/solve.rst @@ -0,0 +1,4 @@ +How to solve +============ + +.. image:: img/Solver.png \ No newline at end of file From af304c3b4840f2bdf09863a0e16ded9ecfbd4fec Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 23 Dec 2022 23:20:06 +0300 Subject: [PATCH 131/225] Add img dir for doc --- .gitignore | 6 +++++- docs/img/Solver.png | Bin 0 -> 6393788 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 docs/img/Solver.png diff --git a/.gitignore b/.gitignore index 8fbf0607..fd5fa9a7 100644 --- a/.gitignore +++ b/.gitignore @@ -138,4 +138,8 @@ dmypy.json img/ #wave_img/ *.png -*.csv \ No newline at end of file +*.csv +# exception for docs images +!docs/img/ +docs/img/* +!docs/img/*.png diff --git a/docs/img/Solver.png b/docs/img/Solver.png new file mode 100644 index 0000000000000000000000000000000000000000..f050dd4f83edf445b92b4a699bec125a340f681d GIT binary patch literal 6393788 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 Date: Fri, 23 Dec 2022 23:47:08 +0300 Subject: [PATCH 132/225] Update solve.rst --- docs/source/tedeous/solve.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tedeous/solve.rst b/docs/source/tedeous/solve.rst index 88a42127..ec310886 100644 --- a/docs/source/tedeous/solve.rst +++ b/docs/source/tedeous/solve.rst @@ -1,4 +1,4 @@ How to solve ============ -.. image:: img/Solver.png \ No newline at end of file +.. image:: ../../img/Solver.png From 3c16aae5780c3102e5c6a6dff817af90a412038c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 29 Dec 2022 17:44:56 +0300 Subject: [PATCH 133/225] Docs upd --- docs/source/about.rst | 4 +++- docs/source/tedeous/guide.rst | 38 +++++++++++++++++++++++++++++++++++ docs/source/tedeous/index.rst | 1 - docs/source/tedeous/solve.rst | 4 ---- 4 files changed, 41 insertions(+), 6 deletions(-) delete mode 100644 docs/source/tedeous/solve.rst diff --git a/docs/source/about.rst b/docs/source/about.rst index 4ab632d9..7e641449 100644 --- a/docs/source/about.rst +++ b/docs/source/about.rst @@ -1,4 +1,6 @@ About us ======== -TBA... \ No newline at end of file +The TEDEouS is developed and maintained by the `NSS Lab `__ team. + +Our laboratory is part of the National Center for Cognitive Technologies (ITMO University, Russia), which provides cutting-edge software and algorithmic solutions. We focus on natural systems simulations, generative design of real and virtual objects, data-driven modeling, automated machine learning. \ No newline at end of file diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst index 3272ac2c..2dd8c0f5 100644 --- a/docs/source/tedeous/guide.rst +++ b/docs/source/tedeous/guide.rst @@ -1,3 +1,41 @@ How it works ============ +Architecture +~~~~~~~~~~~~ + +The architecture itself can be represented as in the figure below: + +.. image:: ../../img/Solver.png + +The solver is implemented so that it can be extended with new methods for solving +differential equations without global changes in the architecture. + +To define a new differential equation solution method, it is necessary to define a new solution method **Equation** and the mechanism for determining the derivative **Derivative**. + +In TEDEouS, we do not stick to the neural networks - the proposed approach may be extended to an arbitrary parametrized model. + +So, let's move to the each part of architecture. + +Equation +~~~~~~~~ + +The equation module allows to set an O/PDE, boundary and initial conditions, calculation domain. + +Moreover, it is possible to choose different approaches to solve an equation. Solver supports methods based on a matrix (linear model without activation layers) and neural network optimizations as well as a method based on pytorch automatic differentiation algorithm. + +**Grid** + +The grid parameter represents a domain where we want to calculate a +differential equation. The only significant restriction is that only a single-connected +domain may be considered. We do not assume that geometry has a particular shape +- rectangular, circular or any other analytical domain. To preserve generality domain +is represented by the number of points. + +**Equation** + +We collect all required parameters to equation interface. Interface includes several parameters such as: coefficient, operator, power and optional parameter variable (it must be specified if the equation depends on 𝑛 variables, i.e. in case of system solution). + +**Boundary and initial conditions** + +In the classical solvers, we work with canonical types such as prescribed values (Dirichlet type boundary conditions, it may be a function of boundary) of field or normal differential values (Neumann type boundary conditions) for the entire boundary. Initial conditions are also prescribed values or function at 𝑡 = 0. \ No newline at end of file diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index f35c89f6..c0d2f769 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -8,6 +8,5 @@ TEDEouS :maxdepth: 1 guide - solve install examples diff --git a/docs/source/tedeous/solve.rst b/docs/source/tedeous/solve.rst deleted file mode 100644 index ec310886..00000000 --- a/docs/source/tedeous/solve.rst +++ /dev/null @@ -1,4 +0,0 @@ -How to solve -============ - -.. image:: ../../img/Solver.png From fb35066c8ef3155c321bc37ae084ad6fbc9cb11d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 16 Oct 2022 21:22:13 +0300 Subject: [PATCH 134/225] Some files + docs Added some docstrings and files for RTD --- docs/Makefile | 20 ++ docs/make.bat | 35 +++ docs/source/conf.py | 102 ++++++++ examples/example_schrodinger.py | 387 +++++++++++++++--------------- examples/example_wave_autograd.py | 2 +- examples/example_wave_periodic.py | 4 +- finite_diffs.py | 118 ++++++--- points_type.py | 63 +++-- 8 files changed, 482 insertions(+), 249 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/make.bat create mode 100644 docs/source/conf.py diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..d0c3cbf1 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 00000000..6247f7e2 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 00000000..9eb4ba15 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,102 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# 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. +# +import os +import datetime +import sys +sys.path.insert(0, os.path.abspath('../..')) +from sphinx.builders.html import StandaloneHTMLBuilder + + +# -- Project information ----------------------------------------------------- + +project = 'TEDEouS' +copyright = '2021-{}, NSS Lab'.format(datetime.datetime.now().year) +author = 'NSS Lab' + +# The full version, including alpha/beta/rc tags +release = '0.0.1' +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx_rtd_theme', + 'sphinx.ext.autodoc', + 'sphinx.ext.coverage', + 'sphinx.ext.napoleon', + 'sphinx.ext.viewcode', + 'sphinx.ext.mathjax', + 'autodocsumm', + 'sphinx.ext.autosummary', + 'sphinx.ext.autodoc.typehints', + 'sphinx.ext.graphviz', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# 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 = [] + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +StandaloneHTMLBuilder.supported_image_types = [ + 'image/svg+xml', + 'image/gif', + 'image/png', + 'image/jpeg' +] +html_theme = "sphinx_rtd_theme" + +# 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". +# html_static_path = ['_static'] + + +# -- Extension configuration ------------------------------------------------- + +# autodoc_inherit_docstrings = False +# napoleon_google_docstring = True +# napoleon_include_init_with_doc = True +napoleon_google_docstring = True +napoleon_numpy_docstring = False +napoleon_include_init_with_doc = False +napoleon_include_private_with_doc = True +napoleon_include_special_with_doc = True +napoleon_use_admonition_for_examples = True +napoleon_use_admonition_for_notes = True +napoleon_use_admonition_for_references = False +napoleon_use_ivar = True +napoleon_use_keyword = True +napoleon_use_param = True +napoleon_use_rtype = True +napoleon_attr_annotations = False + +autodoc_default_options = { + 'members': True, + 'undoc-members': False, + 'show-inheritance': True, + 'member-order': 'bysource', + 'ignore-module-all': True, +} +autoclass_content = 'class' +autodoc_typehints = 'signature' +autodoc_typehints_format = 'short' +autodoc_mock_imports = ['objgraph', 'memory_profiler', 'gprof2dot', 'snakeviz'] diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 92f0d22d..b4459f92 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -2,9 +2,11 @@ import numpy as np import matplotlib.pyplot as plt import scipy +import pandas as pd import os import sys +import time os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' @@ -15,208 +17,207 @@ from cache import Model_prepare from input_preprocessing import Equation -device = torch.device("cpu") - -x_grid = np.linspace(-5,5,41) -t_grid = np.linspace(0,np.pi/2,41) - -x = torch.from_numpy(x_grid) -t = torch.from_numpy(t_grid) - -grid = torch.cartesian_prod(x, t).float() - -grid = grid.to(device) - -""" -To solve schrodinger equation we have to solve system because of its complexity. -Both for the operator and for boundary and initial conditions. -The system of boundary and initial conditions is written as follows: -bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) -etc... -For periodic bconds you need to set parameter bnd_type = 'periodic'. -For 'periodic' you don't need to set bnd_val. -In this case condition will be written as follows: -bnd1_left = ... -bnd1_right = ... -bnd1 = [bnd1_left, bnd1_right] -Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. -bnd_type is not necessary, default = 'boundary values'. -bnd, bnd_val are essentials for setting parameters bconds. -Eventually, whole list of bconds will be written: -bconds = [[bnd1,...,...], etc...] -""" -## BOUNDARY AND INITIAL CONDITIONS -fun = lambda x: 2/np.cosh(x) - -# u(x,0) = 2sech(x), v(x,0) = 0 -bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() -bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - - -# u(x,0) = 2sech(x) -bndval1_real = fun(bnd1_real[:,0]) - -# v(x,0) = 0 -bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) - - -# u(-5,t) = u(5,t) -bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_real = [bnd2_real_left,bnd2_real_right] - - -# v(-5,t) = v(5,t) -bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_imag = [bnd2_imag_left,bnd2_imag_right] - - -# du/dx (-5,t) = du/dx (5,t) -bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_real = [bnd3_real_left, bnd3_real_right] - +result = [] +# for n in range(10,60,10): +for n in range(10,11): + res_i = [] # model(grid)[i] + for i in range(10): + device = torch.device('mps') + + x_grid = np.linspace(-5,5,n+1) + t_grid = np.linspace(0,np.pi/2,n+1) + + x = torch.from_numpy(x_grid) + t = torch.from_numpy(t_grid) + + grid = torch.cartesian_prod(x, t).float() + + grid.to(device) + + """ + To solve schrodinger equation we have to solve system because of its complexity. + Both for the operator and for boundary and initial conditions. + The system of boundary and initial conditions is written as follows: + bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) + etc... + For periodic bconds you need to set parameter bnd_type = 'periodic'. + For 'periodic' you don't need to set bnd_val. + In this case condition will be written as follows: + bnd1_left = ... + bnd1_right = ... + bnd1 = [bnd1_left, bnd1_right] + Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. + bnd_type is not necessary, default = 'boundary values'. + bnd, bnd_val are essentials for setting parameters bconds. + Eventually, whole list of bconds will be written: + bconds = [[bnd1,...,...], etc...] + """ + ## BOUNDARY AND INITIAL CONDITIONS + fun = lambda x: 2/np.cosh(x) + + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + + + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) + + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + + + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] + + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + + + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] + + bop3_real = { + 'du/dx': + { + 'coeff': 1, + 'du/dx': [0], + 'pow': 1, + 'var': 0 + } + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + + bop3_imag = { + 'dv/dx': + { + 'coeff': 1, + 'dv/dx': [0], + 'pow': 1, + 'var': 1 + } + } -bop3_real = { - 'du/dx': + bcond_type = 'periodic' + + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] + + ''' + schrodinger equation: + i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 + real part: + du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v + imag part: + dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u + u = var:0 + v = var:1 + ''' + + schrodinger_eq_real = { + 'du/dt': { - 'coeff': 1, - 'du/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [1], + 'power': 1, 'var': 0 + }, + '1/2*d2v/dx2': + { + 'const': 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 1 + }, + 'v * u**2': + { + 'const': 1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [1, 0] + }, + 'v**3': + { + 'const': 1, + 'term': [None], + 'power': 3, + 'var': 1 } -} -# dv/dx (-5,t) = dv/dx (5,t) -bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_imag = [bnd3_imag_left,bnd3_imag_right] - -bop3_imag = { - 'dv/dx': + } + schrodinger_eq_imag = { + 'dv/dt': { - 'coeff': 1, - 'dv/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [1], + 'power': 1, 'var': 1 + }, + '-1/2*d2u/dx2': + { + 'const': - 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 0 + }, + '-u * v ** 2': + { + 'const': -1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [0, 1] + }, + '-u ** 3': + { + 'const': -1, + 'term': [None], + 'power': 3, + 'var': 0 } -} - - -bcond_type = 'periodic' - -bconds = [[bnd1_real, bndval1_real, 0], - [bnd1_imag, bndval1_imag, 1], - [bnd2_real, 0, bcond_type], - [bnd2_imag, 1, bcond_type], - [bnd3_real, bop3_real, bcond_type], - [bnd3_imag, bop3_imag, bcond_type]] - -''' -schrodinger equation: -i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 -real part: -du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v -imag part: -dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u -u = var:0 -v = var:1 -''' - -schrodinger_eq_real = { - 'du/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 0 - }, - '1/2*d2v/dx2': - { - 'const': 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 1 - }, - 'v * u**2': - { - 'const': 1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [1, 0] - }, - 'v**3': - { - 'const': 1, - 'term': [None], - 'power': 3, - 'var': 1 - } -} -schrodinger_eq_imag = { - 'dv/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 1 - }, - '-1/2*d2u/dx2': - { - 'const': - 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 0 - }, - '-u * v ** 2': - { - 'const': -1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [0, 1] - }, - '-u ** 3': - { - 'const': -1, - 'term': [None], - 'power': 3, - 'var': 0 } -} - -schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] - -model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) - - -equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') - -img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') - -if not(os.path.isdir(img_dir)): - os.mkdir(img_dir) - -model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=1, learning_rate=0.8, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=500,print_every = 100, optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) - - - + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + + model = torch.nn.Sequential( + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) + + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') + + img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') + + if not(os.path.isdir(img_dir)): + os.mkdir(img_dir) + + start = time.time() + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, + save_always=True,no_improvement_patience=500,print_every = 500,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + end = time.time() + print('Time taken {} = {}'.format(n, end - start)) + res_i.append(model(grid)) + result.append({'n': n, 'values': res_i, 'time': start - end}) +df = pd.DataFrame(result) +df.to_csv('benchmarking_data/example_schrodinger.csv') +# error_rmse = torch.sqrt(torch.mean(((grid)-model(grid))**2)) \ No newline at end of file diff --git a/examples/example_wave_autograd.py b/examples/example_wave_autograd.py index 33b76fe1..c80186b9 100644 --- a/examples/example_wave_autograd.py +++ b/examples/example_wave_autograd.py @@ -143,5 +143,5 @@ if not(os.path.isdir(img_dir)): os.mkdir(img_dir) -model=Solver(grid, equation, model, 'autograd').solve(use_cache=True,verbose=True,print_every=None,cache_verbose=True,abs_loss=0.001,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) +model=Solver(grid, equation, model, 'autograd').solve(use_cache=True,verbose=True,print_every=500,cache_verbose=True,abs_loss=0.001,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) diff --git a/examples/example_wave_periodic.py b/examples/example_wave_periodic.py index 22d1ab53..5c7428fb 100644 --- a/examples/example_wave_periodic.py +++ b/examples/example_wave_periodic.py @@ -18,7 +18,7 @@ from input_preprocessing import Equation import time -device = torch.device('cpu') +device = torch.device('mps') # Grid x_grid = np.linspace(0,1,21) t_grid = np.linspace(0,1,21) @@ -116,7 +116,7 @@ model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-2, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every=None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every=500,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken 10= ', end - start) \ No newline at end of file diff --git a/finite_diffs.py b/finite_diffs.py index 8aa8342e..8dc5150d 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -1,40 +1,62 @@ from copy import copy +from typing import Union flatten_list = lambda t: [item for sublist in t for item in sublist] class Finite_diffs(): + """ + Implements the Finite Difference method + """ # the idea is simple - central difference changes [0]->([1]-[-1])/(2h) (in terms of grid nodes position) @staticmethod - def finite_diff_shift(diff, axis, mode): - """ - we do the [0]->([1]-[-1])/(2h) transitions to the axes we need - as an example d2u/dxdt - u=[0,0] - u-> du/dx: - - [0,0]->([1,0]-[-1,0])/(2h) - - du/dx->d2u/dxdt: - - [1,0]->([1,1]-[1,-1])/(2h*2tau) - - [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) - - But we do not want to take signs into account (too complex), so - - u-> du/dx: - - [0,0]->[[1,0],[-1,0]] - - du/dx->d2u/dxdt: - - [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] - - Since order is preserved we can compute signs afterwards + def finite_diff_shift(diff, axis: int, mode: str) -> list: + """ 1st order shift + + Parameters + ---------- + diff + values of finite differences + axis + axis + mode + the finite difference type (i.e., forward, backward, central) + + Returns + ------- + diff_list + list with differences """ + # """ + # we do the [0]->([1]-[-1])/(2h) transitions to the axes we need + # as an example d2u/dxdt + # u=[0,0] + # u-> du/dx: + # + # [0,0]->([1,0]-[-1,0])/(2h) + # + # du/dx->d2u/dxdt: + # + # [1,0]->([1,1]-[1,-1])/(2h*2tau) + # + # [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) + # + # But we do not want to take signs into account (too complex), so + # + # u-> du/dx: + # + # [0,0]->[[1,0],[-1,0]] + # + # du/dx->d2u/dxdt: + # + # [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] + # + # Since order is preserved we can compute signs afterwards + # + # """ + diff_p = copy(diff) diff_m = copy(diff) if mode == 'central': @@ -47,7 +69,27 @@ def finite_diff_shift(diff, axis, mode): return [diff_p, diff_m] @staticmethod - def scheme_build(axes, varn, axes_mode): + def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : + """ + Building first order finite-difference stencil. + + Parameters + ---------- + axes + axes that transforms using FDM. (operator in conventional form) + varn + Dimensionality of the problem. + axes_mode + 'central' or combination of 'f' and 'b'. + + Returns + ------- + finite_diff + transformed axes due to finite difference method. + direction_list + list, which contains directions (i.e, 'central', 'f', 'b'). + + """ order = len(axes) finite_diff = [] direction_list = [] @@ -72,15 +114,31 @@ def scheme_build(axes, varn, axes_mode): # or add to the existing pool for diffs in f_diff: diff_list.append(diffs) - # the we go to the next differential if needed + # there we go to the next differential if needed finite_diff = diff_list direction_list.append(axes_mode[axes[i]]) return finite_diff, direction_list @staticmethod - def sign_order(order, mode, h=1 / 2): + def sign_order(order, mode: str, h = 1 / 2) -> list: + """ + Determines the sign of the derivative for the corresponding transformation from Finite_diffs.scheme_build() + + Parameters + ---------- + order: + order of differentiation. + mode: + calculation type of finite difference. + h: + + + Returns + ------- + + """ """ - From transormations above, we always start from +1 (1) + From transformations above, we always start from +1 (1) Every +1 changes to ->[+1,-1] when order of differential rises diff --git a/points_type.py b/points_type.py index 449b1748..9b427cda 100644 --- a/points_type.py +++ b/points_type.py @@ -4,26 +4,51 @@ class Points_type(): - + """ + Discretizing the grid and allocating subsets for Finite Difference method. + """ @staticmethod - def shift_points(grid, axis, shift): - """ - Shifts all values of an array 'grid' on a value 'shift' in a direcion of + def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: + """Shifts all values of an array 'grid' on a value 'shift' in a direcion of axis 'axis', somewhat is equivalent to a np.roll + Parameters + ---------- + grid: torch.Tensor (torch.float64) + array of a n-D points + axis:int + axis to which the shift is applied + shift: float + shift value + + Returns + ------- + grid_shift: torch.Tensor (torch.float64) + shifted array of a n-D points + """ grid_shift = grid.clone() grid_shift[:, axis] = grid[:, axis] + shift return grid_shift @staticmethod - def in_hull(p, hull): - """ - Test if points in `p` are in `hull` + def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: + """Test if points in `p` are in `hull` `p` should be a `NxK` coordinates of `N` points in `K` dimensions `hull` is either a scipy.spatial.Delaunay object or the `MxK` array of the coordinates of `M` points in `K`dimensions for which Delaunay triangulation will be computed + + Parameters + ---------- + p: torch.Tensor (torch.float64) + shifted array of a n-D points + hull: + initial array of a n-D points + Returns + ------- + in_hull_array: + array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. """ if p.shape[1] > 1: if not isinstance(hull, Delaunay): @@ -40,9 +65,8 @@ def in_hull(p, hull): return np.array(((p <= upbound) & (p >= lowbound)).reshape(-1)) @staticmethod - def point_typization(grid): - """ - + def point_typization(grid:torch.Tensor) -> dict: + """Allocating subsets for FD (i.e., 'f', 'b', 'central'). Parameters ---------- @@ -91,27 +115,20 @@ def point_typization(grid): return point_type @staticmethod - def grid_sort(grid): + def grid_sort(grid: torch.Tensor) -> dict: """ - + Sorting grid points for each subset Parameters ---------- - point_type : dict - dictionary point:type with a points in a 'grid' above - type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string - is a dimension n - 'f' means that if we add small number to a position of corresponding - coordinate we stay in the 'hull' - 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull' + grid : torch.Tensor (torch.float64) + array of a n-D points + Returns ------- grid_dict : dict - dictionart type:points list - basically reversed dictionaty + sorted grid in each subset (see Points_type.point_typization) """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) From 4f2ee27487456f1da7713b4dd93b9d1ec15ee381 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 16 Oct 2022 21:41:08 +0300 Subject: [PATCH 135/225] Some stuff --- .readthedocs | 16 ++++++++++++++++ requirements.txt | 7 +++++++ 2 files changed, 23 insertions(+) create mode 100644 .readthedocs create mode 100644 requirements.txt diff --git a/.readthedocs b/.readthedocs new file mode 100644 index 00000000..9794ec9d --- /dev/null +++ b/.readthedocs @@ -0,0 +1,16 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/source/conf.py + + +python: + version: 3.9 + install: + - requirements: requirements.txt \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..8614a2ba --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +matplotlib==3.6.1 +numpy==1.23.4 +pandas==1.5.0 +scipy==1.9.2 +seaborn==0.12.0 +torch==1.12.1 +autodocsumm From 666abecfdf144ed439a0c384415ef4934de20060 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 16 Oct 2022 21:43:16 +0300 Subject: [PATCH 136/225] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8614a2ba..9efc5f39 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -matplotlib==3.6.1 +matplotlib==3.6.0 numpy==1.23.4 pandas==1.5.0 scipy==1.9.2 From 2b5bfff714ffee8603769d2eb72829f1a6878c1f Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sun, 16 Oct 2022 21:49:08 +0300 Subject: [PATCH 137/225] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9efc5f39..6af3841d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -matplotlib==3.6.0 +matplotlib==3.6.0; python_version == '3.9' numpy==1.23.4 pandas==1.5.0 scipy==1.9.2 From 18b49cf930180c95702d18a14e27d6b2eccb1780 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 19 Oct 2022 16:24:55 +0300 Subject: [PATCH 138/225] Upd Schrodinger. Added some stuff for paper. --- cache.py | 153 +++++++++++++++++++++++++++++--- config.py | 105 ++++++++++------------ examples/example_schrodinger.py | 34 ++++--- 3 files changed, 209 insertions(+), 83 deletions(-) diff --git a/cache.py b/cache.py index 51961942..059827dd 100644 --- a/cache.py +++ b/cache.py @@ -10,17 +10,36 @@ import os import glob import numpy as np +from typing import Union from metrics import Solution from input_preprocessing import Equation, EquationMixin class Model_prepare(Solution): + """ + Prepares initial model. Serves for computing acceleration.\n + Saves the trained model to the cache, and subsequently it is possible to use pre-trained model (if \\\ + it saved and if the new model is structurally similar) to sped up computing.\n + If there isn't pre-trained model in cache, the training process will start from the beginning. + """ def __init__(self, grid, equal_cls, model, mode): super().__init__(grid, equal_cls, model, mode) self.equal_cls = equal_cls @staticmethod - def create_random_fn(eps): + def create_random_fn(eps: Union[int,float]): + """ + Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + + Parameters + ---------- + eps: + randomize parameter + + Returns + ------- + + """ def randomize_params(m): if type(m)==torch.nn.Linear or type(m)==torch.nn.Conv2d: m.weight.data=m.weight.data+(2*torch.randn(m.weight.size())-1)*eps#Random weight initialisation @@ -28,8 +47,30 @@ def randomize_params(m): return randomize_params - def cache_lookup(self, lambda_bound=0.001, weak_form=None, cache_dir='../cache/', nmodels=None, cache_verbose=False): - + def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', + nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: + ''' + Looking for a saved cache. + + Parameters + ---------- + lambda_bound: float + an arbitrary chosen constant, influence only convergence speed. + cache_dir: str + directory where saved cache in. + nmodels: + ? + cache_verbose: bool + more detailed info about models in cache. + + Returns + ------- + best_checkpoint + + min_loss + minimum error in pre-trained error + + ''' files=glob.glob(cache_dir+'*.tar') # if files not found if len(files)==0: @@ -78,7 +119,7 @@ def cache_lookup(self, lambda_bound=0.001, weak_form=None, cache_dir='../cache/' continue # model[0] = torch.nn.Linear(prepared_grid.shape[-1], model[0].out_features) # model.eval() - l=self.loss_evaluation(lambda_bound=lambda_bound, weak_form=weak_form) + l=self.loss_evaluation(lambda_bound=lambda_bound) if l Union[torch.nn.Sequential, dict]: + """ + ??? + + Parameters + ---------- + trained_model + ??? + cache_verbose: + more detailed info about models in cache. + + Returns + ------- + model + optimizer.state_dict + + """ optimizer = torch.optim.Adam(self.model.parameters(), lr=0.001) loss = torch.mean(torch.square(trained_model(self.grid)-self.model(self.grid))) @@ -153,11 +240,27 @@ def closure(): return self.model, optimizer.state_dict() - def cache_retrain(self, cache_checkpoint, cache_verbose=False): + def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + """ + ??? + + Parameters + ---------- + cache_checkpoint + ??? + cache_verbose + more detailed info about models in cache. + + Returns + ------- + model + optimizer_state + """ # do nothing if cache is empty if cache_checkpoint==None: optimizer_state = None return self.model,optimizer_state + # if models have the same structure use the cache model state if str(cache_checkpoint['model']) == str(self.model): self.model = cache_checkpoint['model'] @@ -176,14 +279,38 @@ def cache_retrain(self, cache_checkpoint, cache_verbose=False): self.model, optimizer_state = self.scheme_interp(cache_model, cache_verbose=cache_verbose) return self.model, optimizer_state - def cache(self, cache_dir, nmodels, lambda_bound, cache_verbose, model_randomize_parameter, cache_model, weak_form=None): - r =self.create_random_fn(model_randomize_parameter) + def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, + cache_verbose: bool,model_randomize_parameter: Union[float, None], + cache_model: torch.nn.Sequential) -> Union[torch.nn.Sequential, torch.Tensor]: + """ + Restores the model from the cache and uses it for retraining. + + Parameters + ---------- + cache_dir + a directory where saved cache in. + nmodels + ??? + lambda_bound + an arbitrary chosen constant, influence only convergence speed. + cache_verbose + more detailed info about models in cache. + model_randomize_parameter + Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + cache_model + cached model + + Returns + ------- + model + min_loss + + """ + r = self.create_random_fn(model_randomize_parameter) if self.mode == 'NN' or self.mode == 'autograd': - cache_checkpoint, min_loss=self.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound, weak_form=weak_form) + cache_checkpoint, min_loss=self.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound) self.model, optimizer_state = self.cache_retrain(cache_checkpoint, cache_verbose=cache_verbose) - self.model.apply(r) - return self.model, min_loss elif self.mode == 'mat': diff --git a/config.py b/config.py index c66faf10..9c185cf8 100644 --- a/config.py +++ b/config.py @@ -6,15 +6,17 @@ """ from email.policy import default +from typing import Union import json + def read_config(name): with open(name, 'r') as config_file: config_data = json.load(config_file) return config_data -DEFAULT_CONFIG=""" +DEFAULT_CONFIG = """ { "Optimizer": { "learning_rate":1e-4, @@ -55,47 +57,43 @@ def read_config(name): default_config = json.loads(DEFAULT_CONFIG) -def check_module_name(module_name:str) -> bool: + +def check_module_name(module_name: str) -> bool: """ - check correctness of the 'first' level of config parameter name - we call it module + Check correctness of the 'first' level of config parameter name + we call it module. Parameters ---------- module_name: str - - first level of a parameter of a custom config + first level of a parameter of a custom config. Returns ------- module_correctness : bool - - true if module presents in 'default' config + true if module presents in 'default' config. """ if module_name in default_config.keys(): return True else: return False - -def check_param_name(module_name:str, param_name:str) -> bool: +def check_param_name(module_name: str, param_name: str) -> bool: """ - check correctness of the 'first' level of config parameter name - we call it module + Check correctness of the 'first' level of config parameter name + we call it module. Parameters ---------- module_name: str - - first level of a parameter of a custom config + first level of a parameter of a custom config. Returns ------- module_correctness : bool - - true if module presents in 'default' config + true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): @@ -103,84 +101,77 @@ def check_param_name(module_name:str, param_name:str) -> bool: else: return False + ''' We can use old json load. However, it is good to check if the parameters named correctly So, we make the full 'default' version of the config and load 'non-default' parameters either from file or using method 'change_parameter' ''' + + class Config: def __init__(self, *args): - ''' + """ We init config with default one - If there is passed path to a custon config, we try to load it and change + If there is passed path to a custom config, we try to load it and change default parameters - Parameters ---------- config_path: str, optional - path to a custom config Returns ------- - self: Config - + self: Config config used in solver.optimization_solver function - ''' - + """ - - self.params=default_config - if len(args)==1: + self.params = default_config + if len(args) == 1: try: - custom_config=read_config(args[0]) + custom_config = read_config(args[0]) except Exception: print('Error reading config. Default config assumed.') - custom_config=default_config + custom_config = default_config for module_name in custom_config.keys(): if check_module_name(module_name): for param in custom_config[module_name].keys(): - if check_param_name(module_name,param): - self.params[module_name][param]=custom_config[module_name][param] + if check_param_name(module_name, param): + self.params[module_name][param] = custom_config[module_name][param] else: - print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name,param)) - else: - print('Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) + print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format( + module_name, param)) + else: + print( + 'Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) - elif len(args)>1: + elif len(args) > 1: print('Too much initialization args, using default config') - - - - def set_parameter(self,parameter_string:str,value): - ''' - We may want to just change defalut condfig parameters manually, without loading + + def set_parameter(self, parameter_string: str, value: Union[bool,float, int, None]): + """ + We may want to just change default config parameters manually, without loading the .json We run checks to see we set them corretly - Parameters ---------- - parameter_string: str - - string in format 'module.parameter' + parameter_string: + string in format 'module.parameter' - value: bool,float, int, None + value + value for the parameter + """ - value for the parameter - ''' - - module_name,param=parameter_string.split('.') + module_name, param = parameter_string.split('.') if check_module_name(module_name): - if check_param_name(module_name,param): - self.params[module_name][param]=value + if check_param_name(module_name, param): + self.params[module_name][param] = value else: - print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name,param)) - else: + print( + 'Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name, param)) + else: print('Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) - - - diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index b4459f92..89ed3c8a 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -18,11 +18,10 @@ from input_preprocessing import Equation result = [] -# for n in range(10,60,10): -for n in range(10,11): - res_i = [] # model(grid)[i] +device = torch.device('cpu') +res_i = {"n_iter": [], "grid": [], "u": [], "v": []} +for n in range(10,60,10): for i in range(10): - device = torch.device('mps') x_grid = np.linspace(-5,5,n+1) t_grid = np.linspace(0,np.pi/2,n+1) @@ -211,13 +210,22 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = 500,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=True, learning_rate=1e-3, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, + save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() - print('Time taken {} = {}'.format(n, end - start)) - res_i.append(model(grid)) - result.append({'n': n, 'values': res_i, 'time': start - end}) -df = pd.DataFrame(result) -df.to_csv('benchmarking_data/example_schrodinger.csv') -# error_rmse = torch.sqrt(torch.mean(((grid)-model(grid))**2)) \ No newline at end of file + print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) + + val = model(grid).detach().numpy() + u = val[0:,0] + v = val[0:,1] + n_iter = [i for j in range(len(u))] + N = [n for j in range(len(u))] + res_i['n_iter'].extend(n_iter) + res_i['grid'].extend(N) + res_i['v'].extend(v) + res_i['u'].extend(u) + result.extend(res_i) + +df = pd.DataFrame(res_i) +df.to_csv('benchmarking_data/schrodinger_experiment_10_50_cache=False.csv',index=False) \ No newline at end of file From 49e2dad3f06b4a814eace47317bcbe28dc10127f Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 31 Oct 2022 15:26:41 +0300 Subject: [PATCH 139/225] Some docstrings. Added docstrings and schrodinger example fixed for paper. --- .../benchmarking_data/schrodinger_test.mat | Bin 0 -> 559592 bytes examples/example_schrodinger.py | 9 +- finite_diffs.py | 131 +++--- points_type.py | 39 +- solver.py | 350 ++++++++++----- test.ipynb | 401 ++++++++++++++++++ 6 files changed, 743 insertions(+), 187 deletions(-) create mode 100644 examples/benchmarking_data/schrodinger_test.mat create mode 100644 test.ipynb diff --git a/examples/benchmarking_data/schrodinger_test.mat b/examples/benchmarking_data/schrodinger_test.mat new file mode 100644 index 0000000000000000000000000000000000000000..3767e62244fa80b74f1c415bd671d93296ca6d5e GIT binary patch literal 559592 zcma&sWmgpL*FS8VX6TR@LIjmg$q^6`kP?svX(<88fq{|k7En?|q`Pw@q*FSF?wp~f z|KH!W*8Tk6kM;{V*Rei(?^8?B;H{z(hlHRohnAv&fP<5(JwJ!8tF^a-`)4;94z;)1 z#)^{S{2a=k?XA7-?Ks>&$#AHCcH+=>_vH`~<`5N@5fPRV6Z@|bk>dFOS$F=wx~r}Q z_^%IraOaMHjzk)nu7M$IzYqyI-{GL~N1M$swTz^9G;}zPnRAKf8hoigA}2V=lxQGS ziHXBZGEbDADd^6KNJxl2pubBYPET##oxU1j!H{8b+I1=zO1Cqg8@RXPbtX+1xWQ?I z6sb~k9v18|n1|1A!7^$0DCKqjLbq6yltMXLt~;Wzu#&xi<@v4kF)6?Gt8XFG5!@Mj z0c^WiCc4dun61d|3k-ALsazOdVGl*1vAl{|Xa!H&SGC9f%Zl_FQzmP{Kfd1W9|ZtS z27^?LYbD-ufpSQeQug-rt&RcFNUew(EUajxe?|Y%BPVpD@fUW zGcO2zKSabbyeX?cIEL zlCc{7u+j@(BRj*|yn)-24xcE$Yuh=)1g!cevv*!)CU9DE8L6k1_-WcXld#S_vMzGD zcfA2FQ;ksl(Ihn&lNJrdDPErVe**JAgLc>$Y}T3 z)<@UXuM|xU`pxp6m4w|pQM3s#sSFL^+u%J}Kx(z5w(->>HosU{it=3PaR#o&oB{a_ z^?2#o0r@rZJKtjiB!21yIU)9=RS)N)nZIkM+W92RRFgbI&XTleNa+ncrF+R6EPnx} zy)x+an3mS2Fa2HRd<)5J9C3M@!@KGS;yj(wBFcE zCv&IKj7lV5Rw<03o1G<7eaaO5LuI&dyhg4lBe-GxFz<45(oo>C=pp(*nUOd_;If!r z!2&kgS<{xT(8zVz?8KR(Re7lyRnZb97BH~CpG|4lHI;9!f3$DKVxGP^BjK{NZ_5(u z^^OxVy;YnJiRT;;^eZE%|x}aIln3wA7{)cY5!&1>Io4St5ES(ejZ;c5%mCO^(@8j0)}E?forZ7`k0lB~BKDf@PNBz_awYOxyP@Y$hX)aYcSM!*5# z5GmmR89*tCwTf-6pFAkq8ap|KYlWzDSx;Tq)sf&;^tx;_n+tA#ke(|~^ZO^;R_?9%VU1v(7FikR z)nfH+2_YT>-Jh?(ZTA~MQAQ|*?MZctQ@;A?)70Hx>E!ktV zaro3)0>CEYuOM>{U@2#v`=3PJp~U}5^g5GBZZ-%r0BF{=+o^h!((tS3-)Fy=ccpYc zRm_xAMPm(2A3t6i%&>hT`(*g{&v?<;x)_hT8*tZzm(@H0eq^}kBeRF?_X$!syOE}0 zrF8tB{Zj3ld~6-8hk%R1F-J^D-(wxe5afwJA0NNWnIhm|S3Nm)t%1yyrxPFM>eDoy zidg<=I^FFar*Zf2%hWM_zDefOR8|Sr$9))BEj|rc45s23W|UCa0T?M0yvMT{?)+xB z*?Ma9;LB){eN+SUSQ*A-scD3_z%V# zMH0hdRj*}D_EoxhgPxJdTGDy!IwqvwBtF6!}jfoe$ zwUzKrtRBjw4<9FXg_5?QHD2?wld|hHKFiCy(-d3}$Efr6WSZ$HgNR{~G8CQJDTS#Y z_GcdLeT;M?ej!ui*j;Z40*laWpPB z>66lt4VDDI(LHbQqf&}t5hb%JgGrBJoJ-_QV{ziCgEA?LHWGS`CHF__% z6|3l$=hX2m)-W9+5_-o7_Slg6the~phLoTKea)XW&+kj$HIhHQW%_n` zOmx{iE=A%`pw)O?7g}vm7D~~NCXJXb<2)V)!0VD`sigIeUCWdy-nj8S_ZMkqAV0E6 z-*+wVUDlGU zw6|Pc*TU9cMSs~Y`{J;kvGbBq!R@ZTTj%j&QgE14Lh9sWUA1W-i<{w##R1ZX} zHupMz(zhK}WEamR7iKtKSL~ggcR*HQLykLmdT4pQ|ET^oD)qDU{nG+6ob7MRT{nPw z4R;)B``6XJLT{l2Uz*kY{Nephs^TQ2bv1W}!pK136S%&d$W;844)%EeZoB3EZ0@{H z52?_4PaHylDucQ++2SA3v_J>9kIqf+6nB8$bDR4=jA*_2#@+Aq1z=bjXNjzb*B-)n zJ6ImfzN{KzUga#Q?vmvcb|hw(a5FY-4PbiG4jM7;qX=tv)Ef?a#_iEmgH$^IOFj80 zj4iZ?TX)7dFtC9X$R*JBYZidCuKYIcch_A3(y`f{Hog<~>W{Wosj5N)a}|Te(Oxex z0Sd*RNq1_W6;DiG?B9AT$bc*W7C;Lj3(zWH6}T$23K|RBRYv|qP02ZRiMwZkPQtF0 zF+Xur3Qn*F_a)Fy2tpBDfYr_8v-&DE4BSaUsDq2J@A96(zxoY>u0qg?K?Qi-{1U4f zsYBpZ3R*p=2>&j>6h7m32)g)k`>KN@m`W#FsE=h6a1nj`x`Qj2dLr7rPj(Y{k$n56 z<4G`$PE2*5*{0CNx7)WJPlIVEV$S*kH$kW`*jHT~&}5xKp=}lf02PgW-Ngk>nHY56 zmPG(j$=EktPoSwfL)F`62qDxr?AxxV(6ou6v+ck=itF7Xw&Rqej9a{nxQ+nq(or`%-&nZ8{^ubPWX8A;eBL-lt;4Ok)ZCH3i_U9*2p zH$|M;Hx=8Vh4qWrM&;2pnYy3_MzVBQ2aMB;_Xm28m{_sXOkD>|eU{wIoZf3E|MpO! z{%e+IzC$n;ii0|8)qs|vqkDXN#2Hb&@=}bQb|^m9^E&7#g3A{v*o6R-WV&z#x=gbEYw^!bQN8%Y1gPU1L6#UgoX+C7nO@d`7 zEa(gz!IJ9N`qQ?ks;a|!F>7%1aLe-7VFb*fV=zH{jz~&-_7%fXRKcK$3dtPffmyJ$ zO$Epk_H=->UZItERix1tS7%UPN9quy$;js8z;%?r%nEYinHyOA$CKApk#Ba*3v+e| zk}qarWF0^+pCMJ9IFG!J?Xv~U=iEuAZo?BQ&e|j0D2;3I(3b6!OTbolnis`c5fc!f zCtRfT{X%Kj{aokq*1(0~wIz~SXWP(hCY9OB*Upl{zuVvIaP!q1Lx2A8E$f&hM&njG zxZJ*#7YWnd?mdY&YCG!l9%F*lY5w3$zNk3qk6P}IcOUuvI2>-*!Se0*ua9H5&6n0r zard`2P`pw1*NEo3M}uT5*_ed@^F(oxm9AfY3ArirGU?nL$naNTXNl+k+2*K;tPQK> zP@Kl19@e!I8FFK@tq&v#zg6NVw(@f_Jp*o8Iud=^J^lZYCeHm{{>41Oedb8_HqMzy z>PYjiY5YyjIA!7%kX~{})KYTSqeAF2gzC78}kmZa2(;6=lC6o&cVOyen_|QuA z%bv3}(&;&n(y7biqwF9=-eqm%fsR52A-z01?=R6}dH20%J`kz{pu2ZRCcsR&?VnN< ziX(PnVB_c#Z-bR%I|HyodGjWyCv@hO=WiG-|A&?i*V_Nog0YT=?IKzCRFLfqg%nFygRe3 zNZI?y<8YK^BDfeU)UD891FEYLn#t!p)~CNdBDy|#aP7`}?MZr#WV%jAzlaO^9lZAe ze)EA4LnJatv>CyT=)D8}84KZDqk>i>tMwH#ZKsnXG=bpjJ1Er-ZoC91ASTIeaAaq2 zf^XZ21aU=;n7fC{4wJi9R`BDjrcZ`jCGSNgpXm(-@@~Tb=r7nBwxEp!e2GfFae>ut zf&0^+(0@~Eep5Q%_g_pY6VM|JL3823nyPS|5@A&ph+xMZ4ftQ~JiOd9yDTL^&oTtH z-@#?aE38EZ2Pbyz7Qj@d_C_Yp^tLe#=fiX5YwO1^=I%`_ZUuagQM+AB4tOr{V+Br> zqsFi>+I~c4dQ|p4mdzT^c--0UnFxBxcw3SCg5i$d=WErD>pLa?Zo#I)vQ*d(EtY;+ zP*e~*fPG{XaBuGr?8i>9PEsn|8Y^44`SRCj_UI_ox_o)nVrPeQ@o!yi zRccN3RNV5=Y>RB+QcPt+?VQKE@+14!t>1&=VFF^>EARq@B4NkZ9+7vq)Qr^K&onzf`&WV74sH4wfqTkp@8YG-SS2f= z)~0vsc>@wmM*V*|A3hiAz1`+^6Fqo)szdzEglv0!YSiTM%*S|#8vBiEK_}dAe2y;k?@G4sdAKwgJH@J^O*W*f$HKi6QU$!rO zPz^RF!bq%-tQJj^)cdtV&Pt9SfGG%?=tK(+>(&Y-UmGd^9Z8qwKEJSi#@_F{Pvt*! zcAjpxibT;uQl|^1m*PLx4fx-iEs=cBalr>N6Z$sccN^SDZj1!C1rX3XES8| z+1hQMV7Fmti!aTe{GWg5c%LN1SCP@C{aw}n8ZC-QU zJ@%$B;YRI7^QQU>(mw?0)CZoz8hGT1TT$oSh~>bZoGMe^6vkrOLNWCNLH~j=p6~|f zurl**Aw5!*1!)@we%B3I{IFIh3^fx;`l>VhVkZ;v7UkRBp^q;GL@WRf<3QJY%-2p& zuQlm08L>FzUxh~>K&91QwJ`PtN5SiCv^I{H9s5e*mQyGi=s8HcsmY3PAVoMnL=2Ll z>|#6GLa?8e^L#krqse|#gRm#t)?5fZVsI-dN?oo|xl5AMU5Eo3mpmXp=%}}S^=w-T z06tBGfFe40@v=Vw;gbN1eKPgS0l~{5uFE(9v;!S_PZIs+F0O$*NCp4zb$&!4d~?!I zU?0Y|-^;tNW_DS`gGLIY=y1=wF0J7I0ShQd^81l*I5~g1?>;q6Kw}@Far|h7D=syp zbFtL1rhaROVJONHVsN;)daSoo5@%Wo@HjR~pj}7bb4=OUeM<{6{?OzM8UF#iWs7I@ z*13s#?wPpE_h6) zK5dr5K;H4Uh-ILQIHd8#+!se1z7p03+FMK@6YD7CMMJ^S!!3jJiH;NxD(8{R*tFO? zF0Da^^HQ&s{MWy21-W(se3x^h&tmR%D$RP@%Kzl_8(FwA2@v6M;qP63K}`k{#K6U0 z#7D5p+M_Bko;40L%LB1$mWqmtsZ>!u7e9WxDA<7n?#At>e;at3O73qZWVAEUHNl?M>QSob@bqi@*mvYHx5%Omvgh}O+0E0&B~u+Cw@&k7fw%t8`Xb-IXv_ZE zEsd$=jg|Tu)*5D6nQ|(1D+txpgiQN+Wah)J7f(rztLyy`$!Y+WExH|1LCYUJQK)aw(RU};)B~KAx_Q(5w`ljB$9~sO(DFlv}KD_(MIT{=!(812j z`dOfa^0Z`u^-#tV05@P~mK1QgV}`qgJ8UM@I7NOLOOI6b?}FACfQm_u=NZUnRI&Hs z3b}Q51EqS?a8p%Bz=l76_QctS+F{nnk#n==71M6{vEsc9HJ0Ngur#WA(l?sqefdId zCQ&^N@Uei)j-u`j*#76 zbDDpsscm9-2ArozCq=&qR`m-@__!AuQYrs|Pd;euktM+2GP7*5bDoS|f>W!>3-fBh z+8-MW2=W*SbPr1ggDSvYHlc?epbEKzTC45uJMriYUbAvJVj4z+GtJkON*}FqjmJ|t zsVIigwerElth~9RkF!AJ8ueHZ*#q*hnd~UX-age2*WrO)&Blpes#hAkPvWTumvY%= zo(&P9BG>NcQ{2`Z)tb+Bvp@z1mpe>lGXP^(S888lZ-3ORovYDcazWb9TMNrkgnUB( z{PYFx5*6d$;VP$)n=~#IGG7?|pO`P==XGwx7|wK<&N5G}i1rkb%n|>M#;sd&&6^N6 z&oy!A(g6L64*6+0#f=})jXEZwH)tAPC<15~0kVH%3>pRO4BbbnfD5snB1zdI`CsSH zzF7@>aqVU!sv=SOVL?BFb*)N3r3<{2*Kz1;CX7*JkX$IvyQi!F1N24Bgi$TLXTk3f zMuhl7iTd!R!#EUs8!yM%Mdcn1>MQivro9-xhq|H%zmI{`zglxs#Zv>cQj)$8jxcTW zUKo&}0`7wY@1bO=!RCn&!B>_?oG?eu39aO_vB5ywZ5R!jgADg0v8zN8I`dOUwF!5W z>3^BP@INu5u?_71fm!w{-=q*8Nr^pbPv3`;UKTK;YwrXdMBrCq73fu9G6n9?LMY+> zojU}=e;GyY>&bGzn^U36a~i;^OiEK znI7?EH|jqqR8A4be8coCQT>We(5PJnhN_p=TU_#9&a2%Yu)7`Z50nH*)P-owvYdgq5SWmH{!P+Eu^V&t?ejrCyDL%CZ`JP_hA@4kfQ)=Iq`N;p zpSyw6VgKOSystkVW*qO^=mF1Sk6IdY?qbIQrdDVzXIrr%pA3F^Xz29YrXJ5c2@@bW zXRl)|Tu%NX_|_7>fAc_+ar~P17!un>QSQj74=s|e-GLIWigFpMUQcmX|fr#}MI-07kz47mtP>GQeZh=)n z3Xjcj$AVW$1$w^~rbY-g)Z0 z@$-mtdwlpXf`y^#O;j}wDf2hPdz8u)xSpC3;)86l{@g5jQ7}3CA=8k-TUk!GkvAKf zn-R*xqVP&WT4!0Gn`lI>iqNTpxl8y$t&O>7;V< z9$h%aQ$PkpX;OXlMt)vlE6gpsCPs$nAwbm3Xx?M;Da^A7@`}@LwGKUZiVe*e9{mye z%-rBHVa%;$o6FGRI>H1({how){?iSXw213&Z$5AAT}nsGnLHXfm(;+6aO*f;}DmzQeR|<`dFPneqj=ZR&49Q#JJxiSD zUiu@k0!9I5Zua8(lHC53t>`I)G*Y~z`Ec=3NtL^w!7Sl8!KEkliX_amIg1l+7h_$` z;Jpu4n7eWPn-y7Trd5RtM^|>lS>cwbe2lnmZTp129kbt*xItx~n)|!#%*-T~=#)}O z_`*CpFV7aNYbh5fd=!we`>#?$4zu*La?eNWM@%P9UYDB)?! z(~d_cBq?%lq?fZH>N}igc@427nNbp_y9!k2qJ5O#`UOs)=wXOYP-Y)R@ctvFiBUq1~fbNCzZQu9{dbKvqaF7bvUa z+jZQrh^m*Xft0+noO>4>teyTyuoImWp9zo22gDRB_8Ik?8Ev{hx_B9P z3yJl2dxKq5lq0A@V458;4J=Gkp+znDoYU$-GKh4D*J3-femmO%k;H;}6N>eYg%~R0 zpL6D4wPG)_=}@P%sEIF-k7~gc9ms*q$nA;Z?P+1e3#1zfYCa2ctQG9g#juasat}g) znNX`4kh2EQywwunE<%)}1&ums$e;IVVymmz`CPKoeIQ9h$67@;{+@O6gg5`J+&FBl zz&ufefWB9J?=ip%p!Th_CHl*!2TPT0a)&!ydX)vAY6R6bF6jb@!R@(B^;dU1svsq0f3LBuS7b z0&p?)s>rE!-FDx-wsoUTA}{}@g^l46iAS^(-!3I`PflN$Pv(#$r=ODLuX_+FDu&Im z8JV})6pCQN#lI$oFxx(%za+P>ub++-$hUpQd%hK~rT$X1y}$o8{$V0eZ_UqtR8uZr zpNIAZf|Rn$KTY9Og3c@Gx&2dEcY4!l?DOxw>P_91B7ijzZNKQ|9;k&~F|Ee4px2fzz^^QJ~GcmEr zUE_~bG~Yv~U4!){>Ouixs}Js4r@#_w$FkBJe?C1M3R_GdN>d%*Q4VtfwLkB;1F}2_H1Gfw6et_(ZlE0>M8T&84Yt-7zCB9| zFPDC^{%bgWg+Ki3zoFw^w3YBIVzU6s(?WbCa0Tl*gU(%MB8P$W-3ReWNihRP6{MnU zaE}hAzw|PZ6MpF*aG9;nmDw7#6BTEslWn3MZq#|VHeS*>4knjbXO&;BZ%dVi9A9wy zxFLEY@P-Qlg}#EKCoF51j4>_d75$IHmg>Zyv+M0sD!tDZC8&1G>{uJ{i7iQ7stHKv zf@52-R#D^`w0m8Tw)ZF*oq3%~iVPS9fNX6FukVlT=-bY|W?8SZBQ1kTyyB~MG%@+i z-F5X*#p`GGpH3MoNG(*%)r%3*zC9KCr3J7xYhjkc=sUUJxUA#7f^Nh9yOLy`B4ZnC z#gQFGyyrB!X;MD0_;1^1AscE=nr>48RYqQZ>a{48{jpb%Jne30t7)y<>62~L9xMaZ z(+r=zE^zn8w%A$>X1U^5U;kn`5va$d^|sd<81l$JlGlANNjq4&jT!PRD$foQa=?%b zFTc6!wnQAPUH2(0>;OBRnk#{lN{uw_M`&xV>r>Tv)ZMq=xW%RdFF6!;Sl)JQ$VPKW zsL3;za(Z7yl|On&$!S-M8%$O2Z9yRO!V{6gO{YjCts8rPW2X92W479)@RTgnVSzY@ z=V^OsW8xof?`4Z-6}dhWK5vlZ7G^mhHff21eJwbf-WZWg)G_;SQgb&@4ml|oHA?7m z%&$MIhg%gKNl#rtCvgk7#Q?dFL9U&y|3Ufi|Dc3Q0wnXv#Dye5k`pL#E6FpsIKfpW zNyuA4?4V=}PK>R^Wsep%yu{CnFklKz~EQv0=i2}>BYK^aO@!@)k zoj}f=+#RcAw5}%Z!+%aLDhJu%Y=XRg;X4Zz>Vgk-tu#wvk7pd`+~@vd(y8yh`erZf z=3l-4m{jM!C`$LQ&$_kMmXpze40BtW(86q@9o1sorTb)GYy!6mm@Y(8{1=t6uAF&U z)K+TL?#t0IpT4cPn@HEqM&1jvME_GI2voHLq=AL&D16fj9^|sZ3SzgCI1oeLh!K0l zm?C0=1TkfZNMk@f55e-NDx~qk4pPtFrxFsA0bYYiwc8^*+Y{H@AO$xbm}IKE?I7$K zFX6TYy$%EkJ+X30ffWtznQr@O?qY`Sdh$?U_r5&qbe9BNz?Uoi_kVU1EH5bC2PSp- zDTaY?e)`A2OLkc4swDz~qd|ux~bXZ^g=YsO`trWIor69Z1!JOE!IcvTi(d6j>@j63vIr zbR5oyzCA)5>;dHd8p3u5&r4(Wc0 z=s3tO?A5IbZ@I@orbmi-?X=DD3-ayEqkyE29-aj32hS8KU4`R4NDKjMY!B6O$R3v+ zRFGVfT-}uKKpHjKt*ZA=pU=1H>lFPdF5c)ZFD>;K_8#!i^L?Jjye#9ovDaw3j*XOX zK45|d7A)xc$vEVTe)E*$zK;>L>(~qx-N?Dxt&su|;&L19cYN&&KXgpDUL1k`%q*(n zS{x`D+I`XQg$U7gSxXNDD$QRGX*ZCsWD_a67uz^xL-^O+c^kM|?)0?JgDN*}Jjb8x z;SI6DdE|NCF0UfO_WK@+?7=)ecIM`#o?{h^qVc1vom*s24J9RAw0D)1T6iz*9x}4; zr0!*&gOjJ-G8TeRFM_kGrqef(J(iwf`;WqCO4d47Wq;_C+J7o(s@1E1GuUmp2iiD3zZzkkcKI?Fv;o)PSP5mGsGe6W0LD~i)2ctn4l#KKau*A8Oz zv0OSWzn~n3EmrLx>BM;H-<7NMJ^nIh&Z?!nOa2zhY0K-5VUhBvAlFY*WjvrCBDdP} zmL+!+B~TYd_7s!JGvwcpzo`w;JeuvjSs%n!cmFQ2j3s~f2ypx6Mb>|C_*SUdT_q&N zssYxkbKE81jfiw%`TezVK@)=wRYOBFp0P9(e%cz(vobtsNp7rty}T)9{@*hhC-(la ziHh01N1&W3=Zjd=JMAm`D#A-ACc`NaeBQnsB1o4N;h)5|-vc@_1w4IpjstbKOBq%Y z`C+6e3N0d9sHi^* zxl=xuUOj&L_*I@-i+27NhfGoBXWEFU$xe$t_>w)bwS{R1+kItSU|!Kzhz(O}qh`MW zBc<)y<0&iWGH%@k>{=~qn3#R{O*&C9v*Og=gw|=QoUx?g*vqPc8|19=RVJSZQRr#T<^dOoulQ;Vs;;xD|az4Dzxw|@k= zLbDpInxOVsMA=ECV{rrZ7#J#MQf?8#INh;`mG)*ohAe<*r%>rrV3{e@(iFHJ=?G5# z1*z$%`47&qUy#NBWz6^Q*oEFH7`?M(6 z5yjXH`6Y2wSI#EgMFh3+l5V>ABvVK@n9^thmb485zLj#0P6++;dpv7&AuxGD-b)-! zPmq54W9UL|PvJqI6$`&}Lbvf&x!=EV+gf-<^F@{&Yw#GGz##{Q%Em3SDvcg!{l{W^ z;5RDC)9ideds^b+Hiz-Ow1xa##(Q0vme19{G*2_YXXo=dhELC)df|}^J#pW&(E2nY zyGL8KM#Ct)4jIiN)dl$pxYZWQ4o#E^`Q>CKk;);$$LA(}@{l1A+a~w|O%p7j3ZGT& z+{BFkFw{DhSiz+ajC~)zA&B=XYa`sLsgIkDJyEhVjHoBy+5D3hczMg9tJzkhleBp+faT_<+adELc!NhAsn6mE6 z$?U!Y3xu=p!i;^}Db*8#CNfwnqVn*l`r>pb2QE)ze_;dYe`?;!T~%`Ta3VlQFkmg3 zb}Sp$@JXtB$LH<#=!-GpjFt*!_xVs2%x6+`g{g>L8L;CxKVSFlq{hxtll9S)v(=bP zsP)43ucaFS$eKH9^g!TKRGQ`A>!(O~&Dx8fqOE6AuB%E0yOw9Kk|%3ToJe!u!~~`o z5XxvJdu)8BeSJ7T)K#?VnlavEc|8#T_T9o|C9p|*1yD&B$yhs^0^%dxeVV>sa}60{ zL;Rsa{V*Ep&dp__{B!#3MutmnJw$Ny>(8KY8S^N!DCD zg!u5$`(dFGu@R{e*%89M!!W_Cu&aox;$*aVB6>$9h_(RlqX#qrv6WVf%)m(x>xHiZ zqtW9<_<33YB`vUuMyQJlL`kia6(c0j$3nZABz5ue-o>*#e|jzKFn3-h=l_l9I2AeZ zrwZ?>gm`H|<9*mw+u>92pC8vaDY`7JHaGaiGs7teluRX61)5$OLH zO8m?v{GzhfZc-_Z?}TQlFyXyvX+v>PwSF*Acw!F+&cg(Ej)R4pj8D3Z zI38%wZ2xV&yKi~b=lnp&-Uo{=2esx891T4V zD|tS$RCl9}&`&dn3a(Wb`=w_UlV#9LAY6*?T!v^$-a_*4ax zeSNvq#^Hne3{_6U0-~5`2nAf#c?Ae<;=)O^1KlYVxmlW=N(%S-=S+68}Y9A^d>wg0Aw+;qffAs<0{EO$xUsB>m&BH|g zak2A&%8J{o!Fk?hWdRm&HDjN z()g40#oTx&gn(Oz9I+B}-XT3A#!lrn5apcqeZ)KAr>#|TP)ub0yjj9w%@J~%ciea1(mfOkw#h2j+ zFGg{;;{fiGU^`t)?+4$r_UP1<)P#cye{`YR^k&A>z^$S#bb<0(a&66?R70N8C(qWu zY&9Ff-Ikg9dBe4=ijy{?o0B_2{=F2uR*AxQfGEe7fQKsgwVU`gqz>Z!PVhFMH8f6du z^aBDa>Zr%oD=@tS8CxBef}%=voM)<~W}4w8Q2o**)tQOEGxM&8)%;iAugpTxYuY#+ zPIh6123jF)8cWjpS>RA8V)LUbX z4mmaKC0CwkR|btcGt?($K(WtJf79pTMf(^3DrLwG=h{3qL3WTRY6yVXj#E#CVfC~W zHjuYFnQstdE!Y3elF3OngF5%N%SX1Woe_%$2(vq=@f_@)y29}oYG3WB~WW^dMkGO)Dt%e`d`JtgnTs2O~3FETulgW zuqM#t-R$k4Nlq#5SjBb!cMQ5i*V!~O8%xAh=594P6Br^q*U|-!HK)2IZS?8NMBufO zazCHo^^IBj$97&SD1X^@xMDr}@DU~5SS`yG`lWU`Prg{0(_YWP=31D%3A=j2D4K8U zmk+m6mfv_o3qtr5Y-<{@`<-VjvWB>|#j)?Q$ArID`P{QmY4q*)#S$(aOgGm)m;*eF z?g6Sf$G3NYk!Rv&lPyml748IOBV=upao){;2EvWMIXhiDuWh4XCZDeUZ1^v<7?Kn} z=J~Z8>vTU}DxgOtd}ULn$FKT-^;^uqCkBb#-!#@jc7 zv+mOsN}nKq%07oVo9FpD=x2{fnd@a5S^8ed=CpgKNe#^X5J4NSgwZzE$S?TnxCgUc zE-PIJc9ttUKOS)G!4oNDX5oUgezF(WZJk)s%`4kgP)OnDzkJxaA;bAe_6!*aNGsQo z)U8St%uGM9en^y*dhGCky;ACk;#0SsbYoh-l<7w9&XdF7Itqs|wRxdtTuiTq1?gPi z66brXTdv-+`w<8F{ruNHHveu564^0=PgH^=FQ)e+ZCW%7HU~b1e_v>K6F%uKyeTtT zW(ipLKMqY;Dz$`2FqK*gE<{QE9j8Ix4Z5xWdE0Wf6kKxH^ox@5Qn`aq3$zxpmp^V~4hRD0R?75kp{;cj3 zIbGr#qLfL#57X&Y+*=bk=x3tm#uOU0{`vu9N~9P&3cJ2JtFra=p%N`s zG_p!YNH%0t@N}ERe_j8kS=hMe0@&-cl z&Uod80)r)!Y_b5^MlZ*7Vs@pKkUl@a^{D!wH`BoeAFW)W+6_AYov7TKpczCNfQ-zC zUx69C8A2J&rC(uphPg-fJ`cYbap&9lzO$VEe}|_ZYPg!ht{Hu(alW8FOz<5XQ35qT z+>$)plRZ4*Jv=iwtiN|KJI?r{&JnZ z>ioX?7kyGL|1AZqh%P)BE-oHji00o8Wg_E>Gy3KO`<8e5tkgDZDK5TW1eD+zVcF4p z@n=1Kf&BziM7JO!OdQpdgH2IaK&c0B@WT0@5(ZO}9?e2gr7&z}^{*kTvq49{L3h(_ zSxrQ~IBGHSgz~J0n8@UXH@4TB}+%2x&2(nuL+LqP!;Fac#fw^qhjm)ph%0b&T zm>(95KP#gdG-iIFLiBL<7uTBfu7Y1l7mDtks7n9i!2E*ignMdQLQL#LBTwaLHgI?# zw#L*+jgRyM^MFw{V&l{Ii}QN53C{_brCb>Y>-f+bihJ6Ut5A<$)KB>V7eO4gzROA? zeY5m(wz!%@3aQ?as!aDpEvqM&SEYBY$rN_#DgN2E%Qbp3@vc>=_VQ~#a>3{5wyOAT z9KIQKFtf!FMP#^Sq~_PZ)s*L-wf<-=SjP-Y-MlH$Q~r;TV3iu(y0;SsmD#Za`R?vV`c6X|<~);wX4w-MKm zp%m0H;w`KJv)MPC6eNW`?sVqUwf^`odG$(3>c5h2pRX)3wUeXiY)=|%7yg8hy8tLZzq zfk;ZW{f{2#a3`AqlqNeQ()WUFnXL8U`g4LYdtedOl}mpIkr4yuG34l#u@7~XxQr%t z{0J$NmZ>LWrs3h>b3EV^T6Amf)AF~ufo{O%=QLWm>(58S(WGBwR<+fHFD-*zqARSY ztL)`giA+Az(_m-%Xp%gilcdJ<8c+7;Zw$*rH=Di|*`R0Nz^4Lk`q$j|Y0}duuds=I z`poW!+|K9KMp=tN#ik3tPTiey^`mw(FMx5hN9$DqrdEfOfCnqmU+rJK2kg-%k`XWl zfX*t$NVhc#f4o`jr1_R=xbc`PrTId5cQ@CDW~J80b=bdm$xGzp=cP3n0|F)IIXua` zQ>1D>iSrq~ZpJo33!K(hw1P*CbWgOFrno-%y`8SPpQ}zY&D-S1_2REMU_q)+Ye^w=r{MGmFJZMlknlNYS<0+b~TTWH}<}>b&j11?z z6c1SRq==-pHt`#8bzo9)Hz;=XX1!~q0&DSrJjlq*cnq*)iHKAETQ{%7%HMjkTQes> z89QP3-8Fw4!zPeXVX`Y338izlymDa=`(>YW!5HQ_s2K#7VUhhG|=VEL-R%LREP21c^W> z?|)(jaakl;5O`LTR;^;ky|Tv##?4;uIZkZ7op98i7|DZu+wI<+)My#mg2dJ?y$etE{ga_zLiA8LI5%wY|{dfpE69VlE#rUYc$R6aSmuZ4wH&*6@%%a3! z8W(HR+^ZgP%>JH(9Aw_{KW1p{HtEF#PdRk@c=~h5Wo4h9>QgEeEYTH?bRa)!G3A>< zuAVvjc|LKA2jlnhEjTOb$Olda(%FZ@f6U=K7X|<7`gfqcT#FQ$Bww1F)Lw0Sea#W9 z(j@^zjh8ZF=(DZX2L(oS#z(j~&VILI3xl5Y2p9j7|0<>P;^dd^9-oJm7A5ovO+s|7 znfsHUKd10zE&tZ5nZn^(#$2Nbias$jrmG9a{C*-(`+(<^ic@gd*#c|QDn0afSBloF zy&m`|lo3i%%*=2x#ubyy_7-`ofT0LzO(053XBHJ8gDmTvi;hde=}Fw zF+gX(OtABNYO6n_0UIxWMx1GoJ6Wgo_aYe(ROI!~Lw{$_YW%wsRo5xA_m!*6Z$^8; zm9nf5aM%B%>8#(H?Em+F8;FPqh>D0XX^NUE+{4~C(WT(c+26h7XNtZt3?%HlBCh{_l6fW?dJ>rq`e&X`w#WQ z0Hftz#Mr5|irj!7)gEkXbrY(Z>w7gTej^~AJ-|^m+dCJ@Vs>)}Wb&JlD%EJ4Kf{*B ztTj$v+G%|$uUt=4Ob?`*X#94Azgp~N{AyW6R;SH;9RScTN>G}p#N>ph7Zv_~X`7&f zDBv17jNi%!wT$buvj$bJx7V_%`5qaJ@Ba%qz)EIkWRFR%bXWe}`^_P68UUF6FsXtu z_Q-EbXgk|VC}$0Na&|c7)78!{W+HW4lYZ z?69Um>QB%|ah+!eR}&1-y+_!TW->T&ogWUdcIcRw#;4d*Ss?*^OEp6mH}Wm^0pb}B zO<}YJKt2n*YOh+=vzJTg1dHnpgc8gCbxt`87_Q9SVxc?;A`*!sf+DQIc{u-xExH|a z!dH(x+T`9y&>!Pd>o~}j>AI$L z4YMYJ;ffCM`iTD>V4y-u;9%dloBJu!xH!uCQFpz~+C0sgr3eNY9nky*&#%~SN3xT* zhbX*ir{f`4@v$E>=JrHQ%SA00utG8IN%$)D_9iZ}R1*DJA|NLLn34#_4)Dbd07Foj zs;FEmtlmSy&NG5~GRa;Y#KeKvNJ5jJP}q0?UITG_{izoyq!(7;cuxX*V2DLiuKd3~ zs=xd<*i4_sApczzHGVB_xl%}Sa(-gtkCIP*94aNGABjH-^WVSDk4?}!8&x+ls?+BV zW_z4-+}?V)MHt$X9u0xx{x_gM@E_{b($9N&B+k?#R>An`@ldP6@!(aP_Prk=q@OP) zKea;HMQ?v{oZEOh68Q1`m-Df|NI+z(r28M3#&u4r!MnW}B5(W~ z^IMhS#yJF;=W5cu=WYG)(8GiIAm*YQ1yyff7+UR1>d!pjaMn=#l`2Ds2*s#Qh&F|u>Mw;;j0q@@uRsy{p8_$M`APkQa`UOV~PV5Um!&|voq zBg3HSu^%Sy=@w$1t#)$?Im~^evh@^A)g5|E1L@wE$mocz2fdtD`2(B(a~-mdv*gXo zjVy{|>)KaRJ3>bVvV;h-(06~89*EEvwH7wgGZDS-sWa-+3eoJTO5yR;+xo*GtY<4} zs=#(&GxWTyZh{dw=>?P&zNW=ifb-yEI?q?pd#PIg-I!=Q8WiR_{5J~hp}|G{m#jg# zArKP&dfud}&RGOPRh6nyF&Z`>JugSsxM}^q<|4rd!v+1VyvT2%ch{savH z`K!Q(+f?6P&XLEHTC_JrnAJP=j8U($4WFwA)Wpgn9`)^x$&R`gT%dw(((^|I z)bHkn9C8EE@EehS0~Ukn3z4|uvk#4G?#fE*&*C0T^ICWf$Im0q_$p{!v-@bDbG_vG zfex~lz+1H)ZFCSn3&+LzeOboSon9k(zjHJHZZ%MPFhBL>#*iEM!#4S2=Xs*_pIx`H z2gmrwbtk}As2iX;{zltZuVzGi|K5?`y%mE?JyfT?!7ogM3-;S-i6g;drXS`5bmXL%9fXl z7XYH^$}TiNOJA*3w?%D!p77{&!gnU{pTi{TN@h(q<=)9Uau@POUP8!DX#yuJAJFZK zN2E)PYN_yy$yvyF04-xOwCjr9`*yWBke%-G=w8gqjyWPQx+$K0bqAcx7Wb zEmx8{b}#fEPve0j3IX@dKt;|!-6<5`8y!fJ!f~KYE4z2dCNT}|INFtk7RXMO0egdo zFT`*|3kcbfuylF}paWFODQ6gB=(IHTjN;o6m)Zbeotu6-mn(1}5qajKMRYhrqHJV0 z!ju9{RS2`M1D$_BO7)kX3BWYj(;?!4KMP5+205$(%V>VICfQgYP^1ec>sqIg+kb$> zF0jS$7JbTENu2N`5;=X3Q0g zoGy=CmWbR6jzkNsb%p(AV77{fXewc%7*P>pMyAu}QG21FABpVg~Ft)^#A( z)chA1!N$E@D?ugzBOo)%&^J%4mv~^|@j6-q)ut$OF04BnAq`XifFK)2%6vys@%g`XMHj?*wt%^huUp0&g8%<)@G`W2ev1cQx zQHqBuDdnhXev4Uy(GF?uB&Ur!PTISR}du zF5$C3p5%nw$>b|mtbFc|SxS2opcM&Rn<;u(Ychd}gvgSL;_glR7j{`!1-#~yyp~{O zU#o=^XJitE>7xdO-n`ZdAKr8|0XPTW8#(BEDb=EjraAOct#>f`*cSnfMXXR2A^eu_82AT1D$PC@^hu2P5F zxg7T{UIe>%^|vq9Nw=%o1S?<(70MuC_3-6_;)+C`fCd z`&EFBseqUtoaX9-U=?O3it-E1E-JSihd1sfEp1IDEESr1OT|E#%@~-s4E4u7V5`Pl zbHu!6!C`6Aea|e9$K!c{$p*bT-1TQO*K|1BEfzT}4@I$wL(as>NG_v?H@PEm_up;t zo_|HhwJR3Vn|x;rv|WRD9i?ron8Wu>4pdex`-!5ds($uTt$a>Ee&RyRBdacbi3xU# z#6T{gzf)mnicuq+RUJq5zWe$N2Vr&c#DU+&A-ewkhQpJ)eW$}mAKL;iYC1Z8i%z-z zqX3e9>gjeZ!0}6aN5Wof1vR>VjzSuP?xE+R!xYY9-^~%)*ZAl4Dq#8LSj-8(^7d(P zP%a^u`CQ(+!;_a%g@gc(FNOotjwQzfBeqGy7oWy2eokD7;}8*>jM~RL`GK=zBzdQt zvS-!~OT#3}A5hxGn+bT(d)P22;yq#*o_-On$DRhMC~Oxc2o%UW>BAfN-9gFV=Nn?7 zSW}fid#vE=z_WZvrv6eosZAfSqz67P0ZNsE4JY}EtTmT+OJRwVs?gmn(_O)d<;S}c zz|+i~VBjfC1oI>X|5l^jgA01XpmRME=-Hjgz7{8ec^!dAX|&HNlime5s6lK4m{m!% zT+Nsc56E%kP4<>sxL<$3=Cp`H?($$80 zaKqa9a`_XiQ2EekYf@i%tsB%thsyIRDGs)ov++2-Z&kGn#0Qe^Yvj=k5`-^i> z)1Ih#X)F*-n8_x&D#NW*$n5^OTx3W;+7Cr+r8y7&G3^D*t>`nF>pmq$0}BLOkTjr9 zZ*g1s|CCd~cW2<^w$MyDI2wFYNFhCQ?ZHdk=O&}9$$(FuPa~{dKCGRC?N5{)BypGF zbPwMl0dhOe^6B{IIV>&$5&BE8xpINC$0_*p3-sTxK&{SgA)%6ohme?~%K4m%tn(Xx zvih$6l+Am1ks6-ff|MAwoAmB2ce-XkY%oXb&FZ_P8Oy-x%Z+8&Mqy;LEsR)FRqHs~Xn+XUM6O zqxNUi&Gq2&Egun@A#gNo{_H7>40!khKqe{lvucDSTTx+tbCt8TAdYZ?7%)a0{8Up~ zKPr}xr~M-~8sgirg7&e{W!pE58v2!be@E}mQhM_k_-;0oleTg|pJ~)>s5h#y8;I2;gYt4Gb?fAm@6v@}w1I&vT9%d}(bz z=?f!V(gyh6Vv~l#;u9?C=tsYCfh{Ae-RGs6v(Aw6RfZpZ22k4W1a*rQgXt|x-OoqA zDgeQ$Z)`Cuw5Dn?k5C$}&rYQ9cgReF?56CMDw*_Enx}-1USiM*qaoRwMo_QO%~I7Y zMa9kG>C=Azar1!n8(A^t1>~TLE9La%O}Xb|kswtL#yAPBZTaSByGgq`3j&r0CL`o1 zpcyA^xkRStXX9h6CBnKUzzjns%`Qit_dXA7sieY!RPlG8nXfjUjE;TZ2YfZ`32cgN zu=zP&w@*ca*+8J#6tyM4{znItHqUp|e+=cSYI*&P(0nT+35D$tIrW_84CXt=tbD%9)vM4gFMbWN1p5x ztBwyE>4S5+K?$WM?j3`+_}?3=*Ao_bSw4+ z(ym-Ld;aDf$@iJ;=g+T}*G0ArJ@C+#w4bYNYkVBA0RIiVH~g}p=xval4E6FcQW(^~ z3S#bVM8;)G-g>!OHhhXL2neo!_RDFOf^b->&O^lIAtk2Ezwb#b`=`NS!r2ir%iOYP zPuc&Sn}5eIWfM7U%QO-Zv03=?n1~4c1DSAIihEBU2K{gX-)X46H@9p)x1}@(tao>y zuq0FS0yM2&5Lk>afI6D+djjs`$za|%O%N@AH7I%6Z%`u1UH4KotMfqJ`rtHpvL4K= zL`M^GtJIyg6y{zUw^f?!G-+IfkeS>{)kKt{H7P1l)Q8>FrfWUd)~LIZ*w<*gSi`|p z-32e!l5SxJ)9~LkcQ81P6E`#pA+Hy*O=}VFiSIz?l>%zz;mTqghH4N99 z_dQH&3V!6sA__lxw3LL;eF0kG0}F9mS8&4KC+K|b2fjpQ0#E<}YyulWAQ$4BMk>?< zm2)64iRi;bN&uX6yy}fDU?KcTCIzNI29=<0I^?Z+HI%h4ww9idjyTG#4(VV1i1Jp& z%0)wvUxp~?h0zy}QQ3WhcB7~50pY^|Z7;T~45Jm!KM{jRHqeRD%}9FU(%{Z8$_hDx zb6y&F@{rcudQGqMqBOswrXM9^=c0XVJ_U|Ik{oxUtJ`0EF(V()m;uEOCxJx4^%e>a z(eRA1ESM@GZ{U?YPv=|9wwyIX!Xt9^h}pd$B@dtN!$jzgZW^1}L&@cR;oZY?XB^_D z(&h1(su|J6=r!`ny{ifru-{@*KafRr5q{8E$jKNGB%w3H&3E-+qt_cPr=keLC>IsJ zx~EPBt9;k=%4XtC$P!!Lcz<0>D=GGrdd6YVU*S9BwYVQij)yv5K8Gn4#Ok;RsrSwO z6@R+M@caB?zV0b|zHRNMlQ4i|W!ASf26#o=GN?VoIV!+a(vx%ODUD~>mP0qCn!*t% zzv_C6J^4rSBvSKpc3|VL!{j$dve}kKUQg*hPXWN~Yn!+UIt|)yxjQAktP1PD24BDq zLnifLl>%pYg547D(I-c~1vi2DQqwjbVYj@At>oW&)S6ARKpfT@6^s)AuCvUJT zHA=POCVYT}2=i1L2dan8*f<(LV0RD)nNL5;`aAZ!w)k@8%}}B{EwvZXS#+n|jMS_6*yTOc))BO9(>yG4 z&}=U}OfUCXxC3)dQ8@PO-KKAU+Cn0SxPF8{?rA>x#?<;$2`M%ze1SrtRCQ21O0Hy& z+%jWcl6vQ7ggLqDA_9=3?@+fSF*O1*a!mb6$}g5^`abE5h`I(mte+<`-ysUSmr7$< ztyB{;DyAEMsTe=8gxCm%-jf=9u6YsWMt8M*^Xo;Y=OWEgmx5comY{RaDGq4VVib6I zF%er9KW)F3y+AqU&hiP(meT{B?mW(+vDBUOknP@eV1}oDr36D>NqxBAkzL1G!pg=3 zI)fVTcK#I^Wl88}7mB{U0=Ain4lzaOua^gn*QL0J#<&6e6sp^8h7Of#(>`S{|Ah8e z&w6z`p8xadT-jSAm+px`(CL+Ep0I~+0BN-mk~cSS!BVniwW|;BD=gd}=&j4p(8)*+ zuX*y3CynHMbLfWslz9~W`g|?N zU@9NK9&=#}TK+=LA;^0xY@W-Ug!rCZo}6Yo5F;Ne9$5;c6=2^A-h`$T9XAtRAE&Dy z>whPN6b6bPUuYdWY*s51J&G?HCg5ooVnn+$bM?!oIwc$X3uVi`vBAC3_X&HFh4uZ6 z-P9t~=gU9R1EsgK7m#*!a|-#FH80gO*Z{z502VI={+138zZjjCGmwk!>P!N^c(v9@&o=EC82Clh1z({=!fW+Y;IRPW8q!iv9Fb~|A z5$zU58AV-l!FI`Esrms?C?+SY1{I+a+1L8(H$xU4tg5kUiv5(DlxP;&m*WiIS0 z1Y00PNDRT|f-i4RE7UZ37Y4Uf{r}C>%ay;$*9&6!Ugga|b5{<#m`HvzQRBq;!p}c~ z5(?vmqZFS$)yRwIE^`{UGArSqGZ2_7)KW3~Ddon5khz09CXyxl9!ne#Z?&NJWRWZ} zFq}}E=}z41h=^DK@?7bU^g9lXKY-$C0hQthwKj!S@c|?jRNtYf zzoQcI=)y)H4$i~8_y=Fbo`Lugg?oSZ#BRRwMda+)59LNT6*aB4h%?JC$7n=yF%>AP zKbt;p!ndv$kgZy*176*{%Q!!8%KC*fJ4q{!@H}rn4-U-%SdCho(cW$)CJ>_~W8m{H9szDZ=tw`HM#^fmYs7pu8M{5MHND30R2rBU>?Z%Fx^`1& zwOdJO#CsA%zOO7onTl-)q#H8z5@I~PZsCXGKvn*3059{|a2{|Mr?W^j}Qa{vt zpnBgO{BUb!kuTb{>YRGN!6f^_Q%giB&N!HFaAQ>&SAOtK5X%9oL9WNGsVZw4`+AM@ z{~H)p9y12}y#421^LPJsrtq?=z|?M7??Ejv$=X`rx3Z0Kr9EwQ?b4eMD(ZS-n&Otx zNV(LvVQz)lPd0bT0ku8CR+V`InWx_>#pZMceKX_EULN@(RnmnA z_UW5Q!B6tx`*?WM)^2=U_u;At%Kh-kZlF&bkG~O1$p`K?60| zdW=wUbBE2(JLrrZZ~fIGFNSw5(lAf`{MqH|vS2omac2R=KWt(_rgZ=dhX2%%&3j9Z zJDvS=`C-?0733FVEHmxbV^4g#RDASzgEHCQ|3q0%ZlQbHN)4WoEQ1;IMTMs!K>&xH zvri9ioNy=~j*0CVUhucfH1bLm0&Hn=gVmepzuQjHZfM-U#!oNntxUQ}&8KO~`oYiR zyL(!Z0o0QrF>pZJx;gB9`Z%`@TJ#egqU+udLIk71)2CK;QnxWI%sRt>N4>$FYL7=t z8Br0GtheTpq3K9uc3@55JzU*`ty@%aS9QJ=pB{PYt(InY*a4aMEo>~=z#>7kIo32E zR(}5}n8FWKh{@A_T{v+fKK#)zZxD=(&2zMyI-QZTEosky)E(|Tge>(~Okj!2-kYZ_ zCs6lGm*7&dhjHH~aP`~r!vyY~_F+Ogk+FanT}ZS)%uVmRoq+^pq{@uMr8~-vq^3(r zP;}?0>vP}EG1r3~a;qAa7aJ~5T^9lRJ^?^eTDvYZRyU_g51!V(V?a*PWk>5?%Jp*t z=rw+1WipyB*`Jr93BZ;BG_B=Jz?!*f&{F+nBLm8JG*}K43zLB*w%3`ED+Eq_Ja^^@DB+;WhK8n9(Tw)@%7>J`h>8 zeV-TFd-u{;^}Fltco#O?ZOgYN(dFW}hVxr%p}}NpwOgx_z-k~-4zPzS`TQLx!B&9K zol6pDz)wr5_Je6q1udxJQdBtr1vJOb-oUbELYRB;aga1c=p?5#h!dtBuTwZs&1OtK zHwq)|y#P&dfTQE9wfdLyP{)t3!7PLv_k^IY2fokWkz@)YySA)nWin|GF3-#EgcAJh8kL+GrjyMCJ~udkIe3`gM>782OL%$M1# zosZZs0FfKk&%syk6q?oYL~tc|Iy!!J^13%zR!n*fB-~|;?e#zSYy0F3TA9u+b;CQv z3d*h>`MK3KbHP4SI^dqNvD@mwR$tT6k1#GwbDN>}RoI{)M1K#Qx{ZINrr)zU9_ zOLi}=!iUrOfdY~&k#aLaDR*I#H7UNXTjO%bDkW;5=_YS|@gT!hM`kb9t|Fni!1UP$ zTYL5#*Qw;v`jn*s*Hq;jO-a@Rgl*1^+y#~2S*1JDJ-{U1Z%MHOhP(5LuHxU>`-}$S zk;;lnma~IZn%yxbHNEfZk9_<#kKaVN-qbp4HE@g%^HdoS)O-Ve67a>TKHF6!4xt}H zpvAuRC*cB9c?dO&zMdObKgZn!r~NVP-81ey)7mLDe39$pt%hN zGdp{OPcG2XSo*Dd1w|%LL_mm#!OYs_`kwrqbr0s(mkl*mJ&(DnJT+>MiArPK* z92wd9wK%!Mj7oyNv^jWOSZka;!##1o@~DjVH^K2)T}&X!AC0TIn2I6(8LSVAJN<4v zqfL1iOfO_C>#E;A7A+e+R4?Ar(O)TV=(TMGc)A%m?H`5XQgaAGVzw^EG?}D%_$B_` z%IuhU^N!j>^CGz|^C|W6=AD{ldyntpQtO@ggRuTO9ZfpnhnKyW$CYty;ZO2w_LoXS zIo@dcu03>R3n#5>Q!V;;jgfuqNT0uPrEOqaQq~nht*!kYP94SN*ZnG9Jy_MNn7FSs z5hV9zXIa`gDyezd->u&ri-WeG`IsH6r=pgDsC-eGmG3xy=B#z62la)0ztZ_p z?iI4(L4m^SHaXK_7t__*l^2Mu;k~dE=;pEGcF+f(|7B6e`NyJLwxdH?xh;TAa@zmo zl3D`bVCDM^QSeO10Y2QGPLLqJJ?q-vlRt=?<*T<=nUkuA`3_!7qL&)fxV8~7z?1}3 z8Z^JXq4Now_L^XaEmI}fV;?IK9I&IP<+O8;wDZoBjXS4~_fMT9PBjwF8?(=g6+`R{ zz+gRV%MwJ`-s@FbF?s|asaB$qtNok_5M(=R1407fidoa#vvO8AfNxqC;L#1C2P6)ZzCRj;9f<{e9n1TNkK3CX_oJR%RW?iR}oE{`zkv zEi2Y?uTkgpt&;H5<;44g!O1!O{!Q_8ViDoF=_GPZ+5;~|+j=nmEN5sOi&dT5-yf*z zA~S?d?#^xnEK#H-e-(oNS*#>=-mm%?&z!jEP}xoFxJzj)DhJ;@WkT$JaX|b#u%-m^ z8}Hn1oM$ZWyYsPZU0Q9ZTlc1qd~n%`*zLKGwpF7{oNo_^MaNY^+%@9*h#k{=;VG~g z33u*CjC8)~O;g?f{#2ih_RsI)hLvrnd{w~g<}2z*HXr+mQ>*HV7h6Zietc><%>p0ne;DH8;$(7fT%TjOsAz&FA}a+?&uR<8!i4~0}>f4SyTTy<^NOsm-6g= z#y!O^l6!=s5uN5q;kqU6Rf!+Xhm7SS%pCqkh=!IoVy)<)WYvv(1^UH(Zu8&nTAVFD zgeleDJLjq+W=R*8pfr=~bOghSGdCNrH+lK^veMjUFaN~@n}_f1S|1gu0H1oR@i-^C zYb9r$-+%tiJGC$R%}Y(!%48(sZ_S%p|C#6YHzaAxxb2Lm6k!K?j5?LF7K_Or9zf1m zQwDuShGs3}VhfR~-gA4k^A^AB&{o$>)RK}8rX=6(&1Cjh0AiYxx0ow&C^_kjSS7JG z*!L+3*It~O)(o3dy)Mpx=|<9FHVuvxB`Fu8@>DAm(>RQj)&5CU_u7dlT6mvc@LEzt zu-SMQj@>6=&p3OE;yB9=`Lm9kO}oV$invNNjRRLA~oakzuWVIkW11|Tlu*;&422(C3hDFk2S z^H;XCnEq9@KJ{?biPAgwIRUYcSNbP|ANzW-{2EEUN*~rE-A>_aNe}-yUdYrzc`R}g0$xZ z7>2IBw+8izWK0cH+V+a5Zu2)nlnggs_-lwvV}UxjSJzB;LbCE za3APPL~Tu=TzZ$kpuFv|ZQ_I+OGs;AulIAjQ4P1rM|pIc+=dXei)eXNb&#q<$9hL@ z+Fgdbw@o{8R0FC2OWUXQLojU9pV4v%rh8uT5H;s;c3}G_dZxPEIQGU1*Tj}oOxKGg z^uJQYI+b*xW|?ZaNKWO@|J@@!Cj(XJY`!f`%4Omyyjr=uu(+%!6Fk*n)!j@YNM z4tjX|;In_V`z_T|^p%1d!vyJ+dcS8RuY0aPt~a*4QRy0)<2*W9dl(QM-U29(?v&O6 zVnit>0ok~V2@jz=)NJl=1}h^YAP&~u4%+fL)y*EH;7viF2AR~p1z1djLGkCqOrE!g z-5py>Q#^{hzwy^Uv#9CbZAEl=NYmsGIKr}Ap<$v4rL}%B?lx6yvks%g3;YWgDcDVl z+*gO&=u!&;du$A!GIwn8+V330m*>QZC%&*o-OXm7+ikDXr+5kr%=ferdGQ3)n$SSrJvscIsZo z?sG}{;Ayt@08e$0g?vR7iw5jEpK*;=pxc#RZP=xS!mr$(%}^x+RaAcQZ{JHRfL71_ zVj1kYj0=?VM|%lrr}LNk=ND(#r5wfvWSn<2H@)Qw^ofcls=M z`l_|lHuPhCe6xMZyY8pGweD(Sw)QY`D?@end<(en<7zV?2|o4eaoPG>{<}jJXX}2` zuxsh^|!e0%&ny%;Hx#HEhDBg#7$+!8|Ez?M$H>3u2OfZdu(2jZ# zgqJ9k94Fo;VZ)Nt@}&$@kg;@!dzZ{Tg0l+nqU^1V1qXwjc* zdNh5|*<|*I!ljL(Mtdr1c<_Dq`ry0+_rFjFRltV|Er~xuhh1?oa=v`5CrUCzhk_4U z;18;9NX=&~|62X|li&@$Q9~KSO6m8>@MALFkIK@+6v?&@b46hfp9%%m{(v%sCeY?& zEhC8(bN-fnqg95+2T&8~&yu$>ObnY7FPxoYSW%eUy}NQD)V{qJ2pwVjFkw=_gP z{E+Tw*&F=KV`n@U;O%J?ve{7&r34=;S4*HBLDfpr69s#Ge{g{lxTdko1fOL*Fy_Am z|NWo;HJ`u|^bVk&XF#QlW%dj{32UAVf2NV#*}e~RIsykn@n?Lmi0z6*`?HaK>kMp7 zI2J>{VNbu|D6`>oWn<_Iwio5jxPf`Pku)HfWX+4zgck~27N62VD1C6R!Da91x_<8M zQtQ%5DeB$jkX>7uQ;Deapp0`t%@FNEXr}HmOpihrMIF{1;kVYqv)1Rj7R7?$$qHan zC9&|ZpWe;QiZYh%t`=D{WyZv;W;0*v<|_SK0Uah$i?q*^;}uzb9NAPHiP-G6O&CT% z{5Y%tJkSUxBu^B&teaTc4fDjl6e8rMLp+m6dCH(!6=;hpJpDDfMGMrb1{LS9PLD^l z4mf^6HL0N5Feoq(YjcxOtA?)zO2vae&y&wj0N6cCY$Y`TNBQ5(|35SJznT9;yq$m( z2aB1cQ)0MX#{@Tra<5gLWBP-zAMvhYP6-@}#2i1hsDhA*eEld{;W_SX*@FSJh4JOg z|Dt@)Ck077md9NLWv?^JuMR^J{;`;6T*K&m2Y*u3de`fA91)HA@{`CzVoaGL9}Mt; zO#&>2i~@HeFptW4jH%CGZYLg;Pk4qRh{rGz(*bqyHR}!aW72nKLkTcCbA_TW*Ae7E zP#UUzWr3>!pS*f@D5XkJS}U?@tyca=x~}t!f7Oj&cAe9yHU*)Gr!Si}LAO8kh(z0$ zw!UPTOAmTeBzN<<_MArOpU_SxGoEyu=yjeX2iG>TJAWupSTgGDcGtfn$_Mc^9(ee$ zB#9Vuy`h;nA^#)4#>R9lu`M|F<&bkyJUR3I`;g7S9~ynXC(ci&y7Nua=zNPPzTi7M zI>=><1_|~7Ba)u|#&w|_)8q%gG+uPCVEWD7?}~wn{7`k%-uuU%ZGo!+cP)B^R6?iP zf4Rf!{U(RC!gI@h*X1%<=byTokM&fgM)m`~njQ&Ld1on5KMO3~mIuM{-#i{QWW&*= z_yb8^Ue~rY*RvZSkaMF{lUMxCUGJATYU=gEd3Dus^o>|dFqHVL=<72d-hiY}>TO_LN(GapcG#;LO5K;QKW^N@Da-14B<~D<{pKX5RLuMh* zn4*}(x2k4$1c@xw&9$s(k{)f+{`4WM|8%DsAvP`V3bQFJCJ0cywFW1J&-!QWje7|z z)Hp-0-8&IBA6}OFwN_TvKKS>QvRczaXCW6w=Z~ay5R|FmM?|-HBK+Tp?bhPGcM_q2 zv|Pj(GltdRvMh=E`*TC`Z^+xOpR3!k@a#ah0R7<2uGk|#A%lfKS?g!_M`9zGE1J;1 zq_t8%$~4KWb{=3;P>S?*Uug-{8!|N&X8&UUZ5_0g(-VX38T`y7kT*l1p_lrcy3!c4nz`?9o11di1hwIUkAGiT z{Y`VXu1ojJB)B;cDJm{x*!Brc&qbd*wX;E|Gz-h>%FnT}xQ7jvlD5509inv2{K40i z^_La$M3j zBqpD{tD74*iT2tha_=IfG5=y#88P{Z_|Aa4FCghE?NL1BZiYC`NFDa>@{8_jV7G+( zTBbZER)^%m&0fX?po>iX*o_?No}l@UoZ4%xw^l2HX~_<#d_lVNB*&O(IV=+A9YuML zx<-ptay&@`Liz!_sHFGUA#>~qJ2p;%@SdFzMNm&A@u+~jxe?#u(U5*v3#zLLrOJf0 zUyc=nWyI?U_g8PC<{7Z){unVpW_+&iz_daCa$EnF2+Cg%+o9VW+_}XJT`{|^^I+&C zOp7FDS*qSiadC(kq`wKLwrh(rdVd~fU?=Q<_zB$l$_@4feiuT&;`2;6g&A*MNj9m| z_-9j%z`p$S!A->Sr$sq-s#~KR4JhK^lh>|MjiM_wqp;Vjq3-IUn;Z1KnE{`FsTsdk z|1EH@_=itN!G}+)2M5xWW2;qBZA<*h6TYhv&d9@&hq2vrIV(;*<+(4nmj)+dI>*zd zb5RZ6ib7}3(AmXbQ7Vfg`IsH4b=}pw`hQzE*fYUeqjTbdSJvr)x`^qNe=O;C(l#fR zn<3&eL1V`XlPLj0Qw`#i1-m!B(75J(D>X z=&es9T+;{a+C353B2CV`MK;=L**zRTr#-ZtN;*3B=*)=lbmE7#Uqoa~v^oB9)fuxUf+@8{=oH3=z#?lLFzof zWO4inb<7=F9i-k+57s-F_wNA81}dbZ77zr&?(G$*{J8bD=lDUbp-6XB5syyh$)yF3 zfQq2{rF@wdF4y&Y|GUa{h8aFF4lu0DtTaQ`@I(2%|)*Y|0oBR z!EfGGjt!}+e{fo$`{NrX<=mj0J>8G~tg+Qz3ujjj$(i=#zh&J<8hzU%b%tYd?PsM! z-OdYjP;MuAvzR2yM!IiZfIR5~0-CuuL=l}pblWR}z4~bWdEWo0Sw(C79tGJeYqC(g z#ao4XH|rWTyy7gP{d(88*|H=8YmX=}-je(-job%jhu*+K0gl}jHxVByV>xfhcX9JEXD~8;$0sm%tEWk~i8A@+Z?Rj}NKTWD zj!ORtAm?DLdGjprvIQfW^@n|{rsthHp7HI6QBbJTsdqk-x3ke%7Rzlg53Ns1I> zlnB0=Y9QP5AkpB0H5DLuBt&yG}Bqgqz3@gB<0Y%%E4k6V_ZqXQbFU7&yS`(e~0LTGyR^-=FuOA zgVN7@a352Lqh|an07aZu)okVGVs>NoQ4>b`Z%6aVzj^dFc$^7czLJFV^g29AY;(TXp4u}{^4heB3G61Ux25(S20 z>6B~+Vzv0>!x{Iu&jPuPRu1-ySKG5}-UO7kekgqyZj4uB&fTRbI3OvMy`78wW7+NF z+0&WR*}xgX*X{PL9nwB@=AxEpk6YF{*8P5|nIU0DqQ>Vl^3=Rbi(hp5o4W_bh#B2Z)vHjRmtw6dW(x85hrNHu)WSoC8Y>Ij+ zu5glh3ZSrSz;PO_6Jqe4oShG9)djx{k<25v>g9TuF7K6~D=7Be*Lox5*FFnlx}pN~ zl^`sqZ0lMqn7%IoKB4$G%I*5x(2JMyF1&Cz?j<%JvKk{jbyVD!?x8npTdHfN_c5me zn8tK`@aF*eIK0K{_7o1NDicy865SSwYl@^eqr#qGyXdez)u^~UC0mf`OXvXaa&kQE zYrpES4y0PldM6R_b--~D)x?io^usROWApA2Jns{{0*=$br~Sp+C}Ur&n=HXN0#{`j7RYFZ#_WajIbR>_M3qtw?Cq%i5CUdht%2|!z*1QP=1+wXt$cl5h!&U7TpD? zH7jb(-Xd{4J0B_>zuidz;s70OPyW#^`*N*m@%pk{EVj`^{rYbu2==wR?vrM0@$_SB z5&R-xKjR&eKGZsTHz^4i#*vrKwBjRp{VpW^4qS=HB4{ zE2h_lsO8v3C6(7qM$QPD~fH$hvV}Y|d4AH8Y?&w9|=Xcg< zL>OV)ee3#TXVk%bd@DVl(595XylPr`O31fng!)enbDFwRoq9J-( z7x*iD&rqJo{PJ5}xij=fy2t%K(>n8m>raMv2AFjaO`?`oA-2nhJ{9doD#}73I9~3gojL(WNm)S{UAhDfeOu&;WR*!an>?$#8Wf7XZiF{NMhXY-foh zhJ6xxWBwK|{qlkVK}9AIw%8>$(LCT8p#}i(H$sdpK<9B-w|zz!$lWoe~jID-+ChF6aJ}#qAlo&^CcfdaBSRJe6niQa4K{Q-gNnXin84&+XMiqKnA~c_4LN zu&K4`QtYY!mD84_^N@&hE6oc>`6E71KLZfo9ml;Ebq`aR63~VB&JOsY4v|%Auj7VF zG9X){+;gM+q1}l0Yc?X71dM(rzU5oMBW1`pzNIrpm{Me4Q1_Pe+Ry8l;7#;D5Mart!$$q-9V7dVc^0 z4(f&QD?v|qtq*x&jiR}U)-nA}#r=pcC|i51w>-fthP0>xqUS{Tv&0ar(2YjKt-D}+ zsg@P7)#~Wt$$`)AniY81plw-LNaW~Z=%RL7>Lv-sQ{=Ej*NKagF+ZmW-XoEXljh(2 zG&yRcAVU1#L9VXUVisawseQz`Ojh!#-cWS0$zJ2Uc;dnP6MC?FJ5+UCe}r;<*|GI7 zt^CK*?JNH7XXx?@MKQQ*$#$LZ!xUp*YmEll2zW=1ahCt}s_6qnzS(1%+7JW(_8iRZ zrw#_AR9TVX%S|a&j)h|Uo2Y}mJ5it8dp~CZ`qsXe?Ocd@<^7^4JR(maxL@>)j6A6k zx&qm%SMy_xl1>una0uV?PP6;kfPc(%x$Xm1p1kd%U1)1M8YJ@!yl-ZlJhwa4D49Q( z6wb{F^$E;u$W780Bk#-QOf(p$5f)uWdrY0;-K^jLMI1@y0LGpCrGmqTX`cE|S8e?( z!QcyS3A@IJu0h-ZL20A-bX-Cj3ky7`txmO&zu3CE9L)Z*%-D&R3rKM?6{CGdV4gg* zyyX{X9%uGlJ%;r=%r61WBAK6MuV3`jt(?Ca+TsW{*l|DAC-B$Eg8j2xuV9yNew)5^ zUN~MSNf8eS(m8_OHN4YhPRxbWmcMYFP?j4#r?2sMSr#)dz02x& z-TM}w(dxTD9oM4qh90?t!AO_#-kpRWveQ#>CI83MdB;=zzyJSTDk+?hQ9?GE+4Gz- zLkNki6GGW5^Ki1V_ns$Pge04DviIKeaO~|I4vup;KYhNp+wcGL_jRt<^}IhGcS4!_ zoR1lW8Iz`n+{{n^Vl6mGrXaU*g|uo}Z7-d0Bm?k=UR2p6=McuVQ5ClTa&` zkL!A|rj$;@phJtYn@zzBK!KxtA=G5A)^=GNwK6K$QE?aC^arEc?P69-!{>mfDh zgn2J1?k4wg8&<$0)MfFXsW16GsPxY(^NtX*(FUWc-=yy~NF?mwTQ6HayR)lC0+Mgj zC!*TV>tTHj4Ni_i?t{t;{VhJZA19g1pN)k!?hnI2a`U7$89!R7C<2iUt&MdSQTP>* z{KiOYu>X-V>EO^S!1Bx=D}z35zzYsf9Qe*{5}pKF?+w|TEO(N+sQ;O7!txCpPZujNfNuTcY=Jd0WIl4#>)hUPWsmM>E9+ILo&k#!87~DWA;6LEiiv6++FU!CC(Oq|}UQf?_9>6Xyi&heS%5}jM z#MzonCLCy@%fD~>JCy0B67bIVCrR&0!^#{=W@NSU~8y8f~^^qG5p+aYCG<$Mh*(CtT zdjYDw^y_N?0Zh06PB|RHu65PRd7aRK1@{;%v{+urC&k7kIud$P5L0>I4hA!&21~T|Mudud;~63(c{A(5y_P*xb$gbuNg4+EBHl{M zr>!WtubTa7liNiopIQ8tb}8BJ97_n7Z*POC`Y4YWzJZ_%7E5{u1VA!qNOWS+B>0;a zxp23>1eD$3gSQB$lr+<8s66~$jZ=8{!ytJ_eZCoFMwi9eWmiwbf|6FoA+Gs@^^Ljvi#6}wF-gX7ym^U#P^$J>Wwy*e+hT?e70fp z7>4yqxic;8c+YztXmL~!kkI%_hAvZjD_iijs!9Cvh2y(B{{C6pGb>r)yDH!08&Y7) z{-YMj13UZ!zZ;lMtA!bN02K^7z5ZP{Rli30}YJ+mXu3iIY+>CO7}Onc?#UPk8Ada;WC?(4^9P0JhI1zJt= zN=GOQ=g=;5&%eD@WtFWz=M)kD%Y1>b+CZ(8dUETLJ%332WroHRoXD>n!8h9UJgR2_ zu*Vdp>u(-TBRxvsHw%*`SdnFXtSCki)T~L!mub8knA|||A|Y&cY`f;%uoZ({4zCsz@|4IBnD$P)`vQ-(AGSBKUpGU9PeeyLjMzde|tBH$n^Db z*=pXmwWnf$T@}rRM;(|Jy(_*=#p$^Oj>e2^i31;L%?{B`I=$#kGLV` zZ>P~~->C+v_$&IIp=YkQ+&XZyrRS>VU!06z59R8ZIC;11+05}QHP$-Rq^>V#f7`!q zSeELkDIM@sTm4WJ7(i$M)jMPVxG&nYbvoCSA-%N)Q9?}kCaKIwZ!25)drOnMmxe`F zASijYV8PvEr^kveqWvPM5eEOx1vuEnpS z5x8GrUgqkAS8O@b?kiDFp;XVm$Z3CKstX>Oi7gKOt6`FC)%LQ8G|8lAx%9Og@S@Y@+)qvp-q>}Q%? zq=v!^tTYSzg9^xU*W<-S{(_>#Ez^c2mLE-er?q!3+KcL-71+H0(jfP7N6)zayO&@w zj;!>hV65p4>ddc1fA1903uOxP+4lpK36j3d9a{T1mHWZ4ep?_~`oYaqQr;9@(xtx= z{YvnSHe*Nw_SL!9C!Qy7VSOicA-U-DGSN!+HkX-9r$sB|UH1y0gA;_CnvLw3E22(0 z*HBydFkeaRVfOT=t{Nr9cX{5HeRu|b@uepghfI-Oyvm&ELx&%V%HRznT$H8(`i~qL zQLMuW2Dm>_6o+x^o=o~Q4{R>#8(#@ht^XLQ7nLQ;EPzO`WM-15mzC|GmKJ_R%EehW zt;ko#TG;mQftJsEX7^-`^~{sz3a6$L@5MG>)^W+J1^EW%Z2pL5dCpxmJL2vtb7Gd` zJk_Vx-4am{yE7~@LO5OPGvF4@b;mCbaI9*7x=SwPV48e;_ulXqwEAqC>#$8J?8Iil zscxhSCra9z>8WIlzBrj4XF~kmfOh8BXF_GSHZ1y->_;yBkZ-n|Ecy_2#}6DZhH8sk zEcOym_~N;s%I<|v zHg9VHi2^2ISH0?DR#DHgL1aq~J@GD!NAXJl=JZ>wE1~3&yzXboi}HZu{=7DIp0mt( zyA*>~HSfp(BV%#6y0l#gp|rIdH>yH|`C@1)gRshWl?QI8U91&MShjvku%z&1bjHn} zY(=k9Y|+u&-Tfe*XScp-oxZR6$+1_fNqF=YAY1A*cgA|cR%6IrZZc45-m?}qVLV#k z;YVP&c2_LuW$kJ;a`xg zo_rHuFLUo(=mp77;XN%A#=e%8_yV$=HhN8^W+S`#GRMyZ58Cl8kF3WpFNE1Ty^T3% zV>|2Eb$=e7tm=fEqU9kZQWtshFZ#Uy%XRxhkAbrMCA)tt!CCflZGnl}Fb))EcDN^I z)6U9~ft^)VB5!r5(yfl&6P}xQ+;DVb={mU1Yuxemg2I@7-j!r|X@j-91Xr=Yss8M{ z`3xAbwq$*bw#@gEaD=}I*zCPe(eKd{=Jqt9G#)w^L85$YK3ejEGMLCWMDuy|ub!a6 zhZr{c!G6#{nr*Lg@Y0_}q)CGpyZcJLlN7yHBHiGh;mtg8)OWe!#K?=3w8>q6S92G> zYBK{b^0B%*6-`&qzb&3*c*Af6=?nk6ra}o7!-OTj3qL9ufZH{3b$w4AxD-CCOFKwy zfLb#TTo26W#~R-lE4)4ZM^B-upFPxA1=%EPUAYz=ZW)bE^J*kwWXmnHUaD zT%)$Pu@=s)SWZG0n8;fxo&@&nb7Nf3?3GP~76JMuV##+RfmrV3i<9V!^;iFHs^V{0 zy3_o1!8Jb+a}zdpJ7>s=>zT>c5%dg2(jMuBQl&?8M4antH>WERyjA3WvjVHa4LrlZ zgbqoRWpp@_e0Vkda5(&| zI-D4^M$!eqt=+$k36;TpyockAgp3bg?Zc=s@d7yB6i7`XfmQ>k$BuXopTDL)AW|>? zcM{-)4spV46Tz{GPKbDDe{c8dnvFT8<~|P3iGzS}rfHDFy0g$V-5jE6ho>osyFdvpTd@d>T zY-x8wcH-Hg(1Jzp{Gn3BhFg%AQU=qM)BC<}lSQ+23iMnr_};w2_bw>)bodSo#cQ<9 z4F>3uyiITcmVhlx_-->%$4qJ(BlA@@-_#((0Uu2LzSn+KeYT)|0TbQR2w6M3x>Q^G zyru8+-k|1+J>elUNV*+HITv`!OY|%bE3l?@bxA{t42_CEMk{v&Bts>yI zw(cz*pP{??YwJ~+GZwD0d=_O`1XzbF_Fpim-B-N--6LplO6pCR09~|rp008l zP|wZA*M(}$FkFR9DB`)qQ_Rl5C^ZM2khfK^Zu6o^I@F|*oCzxJvF6Zozv=JPBWW)@x~!mT8}ru`fpe3D@*l1fhlqtDwe7geo`_As`@Qh z?V6X)A?K)!W7XBPR}ce_p9-aKfuJQfbiAKb7XqW-;LsKYRt_|$_EOcK{h>7K$5N?7 zw|@i9S2}_lUqbn_{n8_|0+?>V7VGOV4vf&fY+}p1g0u8tQKU^pw+Rd6+0e>Evo#d5Q6;5)odudnuaVt*uQb5&*}Aw~L*fqiw)*0Xy-dR8 z&E#6$N6g|A4D2>eIFpd33IE9ny>q=ZXZho?H*xP02)-E*du9LHr{KCo#O>Qqd~-U% zQ4ucLT;peu&2Yb%Xv*CWaum17<;loO!P7q3A(`s|4?4#4hqJRSDL_TKA9%a>m? zo{xFa-@Pr}((+6)=$F{)c}RIvppHPvnbmrdk<;J-&aFW6!x zQb!~B>d}Ff7Q&M*Q-OcWs!E2Y`rq##QASdB8*@5@x4RYgB$)E8nzz_>VS69jpOY3A zy*B&n%e?m<^EMfE7W=O&O6-r~ z(cf>H*f3FSRq=NW2~A&(Wb52Y4?L;^xJ4fE+CW#PyE}UxTMI}^8wM(`bU85@B)9Fk zPDXlDTOAp>@YOm0BF{#9l#5TU8zNSu?7leOj_J`~xIgq$DQ!uTB}7|4&Y#8Q9oAU< zCLM+6x#YxmF^6Nd&u|%r?3SbF3VF<^gYI}?b9c{$ zyF-(YLRjb+Le3)RmeU6FKbhxG4wb$e>4!)VZEbygqf^-6 z#sLvARe094bu77sAKvnbcE4;m@eMh_e?Q*)emq!s>@$kX-u6$!yA@pLp@`s&P|88o zh>gyHO4vs4fG780W;%j$-;#NsJN&eB?_VYgDfuryO4McM(gB+3n5pxEUgs?Ef?qE! z>0PDCebWQ(^H%orA{cpxEs_p{{x3h8<}d6w`{I%}4~Wx26qGozPJoJHzfBB#?Ce_Z zRPtiIpJQc%E{0Bs+Nglr=++Rg)}#CsuRKi%PN{iTiO`@bXQTgo0)ZT6%n!VMtkKx~lTmTO2<&P=YA#Sid?ltA?6Fo&jxjdqazctH5?}X*Myz!| z!B{=SCBh&V=>%H^I4v9T>i1Fu8jtcS(o!r1{ zZ~T?PU{e`*DR=f|JW@(sof`^wDh}RJQZ5;tZ0e|9?P4g}LldQrX0h-6`fq_bx{Zph z9^vw?X42_De}+rdZ-)jp6|q1r92^B-V-)>rX4`n1z)wNH_Z|0p?)MCVvfP*VHO?9M zjP+&DEmb>YatD2HE;BjMJT9aSn@)I_uQ2ygDzn~3tvBa`q1xu7Js|#G6TI`SQE+BooJ6nd$+L<6NrB?F%Wn~d-@u2)`fx$L?-)vcGe_zz9Tl|@~SzjQ}uJb%w1aPIoYZ-IM;{EEFu1Sk6Lq2rJ0 zltGoj=g-+I^`-0G*Bhf&;3kGy>JMd|1pxgj{mcZBLDdQZh`J~rXXw)oX+H12DVNmp z8DizhI_914C>b2_hPIpb`4Epni(0C}M7hP!?KPK$Xmw|Y`XW?8{>^Q(eTVy9o5r7B(*r+RkNYe%joD_=EMOuwLf}V$ zLPk1uaTA@TKons6{IZlII!T)vb*9HE-(Z`QIG!9)&}55}cgg;-+}%$mo;u)Tc1wr3B?oq2*zK># zEIE@_d=ulmljMQ2oo^_+aBBRJ;;PbUYbhzHM$da!>5FB=Xp_F|nvXDkM^1iNRz7U0 zXp)|gPx^e7iNrMKgiY}9W5@43vmV0v@Gc_dto5&lQeAsBpvq2a>IMk^AOk19u>ki^ zTM}@kkKGS#ELWY2bO}|m{#2{9a!1xiJ`AhX58lbaA$O^L zkl{dRz!l8&kir!C^`QG;ct|wn+7V!H=$Z%nbbvbH;eU*GH!mP>QN(-zNFBSLKkg zPc#%GA9USx&7$D<;aXHp_5G?x4^}@RMRj zgjAx_pB~WE8aoqa{3T}62s7=ENvFgOhC?XC^L+LL45S zoiCI9yH$A_lcMl;+_%Zv@)7eFys!FNisJF0Re$9n-&5v--I)ja;Vn%G z5J7l(TmScm?~8+NlenYkpIw*)*$jR`UMq+4em(X1GB)G$5ihYMi2d1(S4q5;yiQS{ z2y|5UG$;93iTwQ>IDI$&*DgT2Pb`2vfuv%uZO*=6irVqq+p`(`n1k-aqX_UQ2@sR5ryyLBr+ z;1IuPD4*x@vE5m6%-(a4SN!m$o8n8jfg`|OFR5^1(x=M%8x~`%?L%c~xojjoalg_& zxmdHyZ-f@G5!Q9qYM{62cz)t9mnL$UeAVkuNE1);dsf5J*I1=zS48o58xsJ+QUYFx z__^dM^!(>4q_QyXhxdWl-rt*HzQyspeCI*Iw`ge3gP*wo6UV@iT#JQ1nv%CsnpNlz^2G$Zb{kh}tHLBr1wCRf# z$wSRBVxT6%?H`i(VL* zFfIODCd&BY_x*ZWTXO@v=iSa>(`1yGt3)Cmq3fpJNJ~5;uH!@% zB5-H)Zo&qeFm5Dz*E49CaCoEhU9Urz&>N!rhpw={8t&aOQ2vLP35S;}=2ll{jIf=z zqZQIMklU3FS7{kd?Ugy*!YcH zPWz>4duuy96ZD;Z(x}&Zi$t(y_>XS1rt)G6Uj`_9Yy|2!5S2X-M6Hplxx5T<9~g9a zo0y#z(6--5K|=CqhLMevb2c-a38n=*+v^R~v-Ixi8R6bKHF#f z-GCH7Zd6RSP!VO zqz!59>MnDnSCd@DKrU_*7LP=F21d@xj(eFRm%pox6LX0#Ap(sYC64MxAN1l zr73*VK<+BttM_O`vV-!q5U-A7sLzzB|N7 z)#I11ym-(iSU-@$)V?XgyzM^|d?vhbi}HIdtEt6M`3;6w8h*d}82+a2+Y}`e9)As6 zRxud2GFe!x_Ta%hAbM6Glm+Y6HJp#14p&zrU7wd;7^&7KMb3D}GkTu7oj2bF z_^PUKr}Q0t!0hiiKxvs(BueCe;WI;LumU>eMskLI{;6qAE71SV&8`z7-x>zp~5cFad@T%(q^C2n5T`)2_}M$hcMe-Q653ojCvouxOc*T(; z3?Hy*X1!8+5PK4)of>Ws1)dMHiE_ep$aWzFQReJu^i4E|5nUbcWvd18d(oWCb;Zoa zTt)+9c~Hp|hLq?y_CPf~L0`$B5rMd`grjUoyw=qxc34Lu*r-=BVh#2mCjK_AHwDs3 zSbqr=Wk-<39g6fo>v}^k6%m()>hRa>P#`-D&W7;kK&He&*?YS6dWWahc3)#Wg>eKb zoF5m?>~!Xabo3+viF45KPIyc}o=tNOL+1w0;C9i|=tKw-;RkaWjSXVzZoGo)wzaO` z9d)ze^kenc){+{JIV6&x5BGNcT!fdI%yuqbF1KDrT-k&8pNE&|$aI_`rY-BlY0j7G zGB@eyanvhQR*6^~(y7r@Y4GDY(sRNlhB(?N_n=Zzh4(G*ZFBm%3dmT*hjaVMs;2r& zS}lX@u;hB`o8f4jPI`Lfb7l9b4ykluslDg!i;>Q+<(Er1#HeFdDMT|WKf+tZgC3Wa zs!|yWNhEMsJ_-k|_d9COpV0ZV&JChUbS~<@7Vdp_2K8e; zKR6Ptk*dbAm*xPIq~y7oa;$Yc*Sf9#nrOe~tP&-mD0|%H;MAuSKTfmKH^uKB40A2n z!rzkRORuq|`JKz%JuWYp8e~&kszm$6ZFBB zE*^fkM5u8hPwuUVudc|*2e7>+ANm~|A*6uqUtz~?M#fijxhCYlBYR6acI7WzlLUg& ztC{)onz<~YE7ntT2N(V93|>o5@#Qe_-Yt3Iy?4c_onwFsh2_1C)23D0O)QVS^EO|= zJ=W;8JH?cCLmmd_Ch+c2X7;W_IZ5RruB0v62SRPATcc2PW22ic+!Jp1^&~{Lp%Blg zgY`n!&0A(Zm~V(oyecKjm2f$$-NOg|cx;euteokx(GhJl3K)E)7Cr5Q8VN*&g$#2} z8a;nVh;=k^;ya0;HBo1qA7Nv{&5Yy>+X#7T-iEZ#IF&BkrkOV%qvHh`%}~DDe_~C3?Q>FCw-47NYI(@Z|gGxSUtHy3pFK*lFuV43r33l>3vHOMh`TCcsjLZ4EX) z={odb@xKGO-}LazJbs<@61eS8z&wv1mplyBQ(mJ;{_F3)4NV&Ow5>WCQ>g5_N&W%e z(vNOXA>pa;2+v%V_{yivXrtai`PU0ycdzN&jkLE)d=3{uktgv%RsIns4+|@fUYQMt z5D$9nE%gND$}T|_zt;0U7U%W#+L`P*7z#IB+@QBnFSm8OTDK_K^tbu}pttmI@lRXt zKa*~$%{`0WIxajR#{Qd^A?^tBMvyE(7O5}eM3zk?!a{Q@GjmeqiFXGrpI?8I_a|-C zWp3c2He^GuY1HA<*32TRpK zxc#^$QE9?RwZj2X^h_N9Z&dhGbO^dD^*mou?l(8^3st3SI9R+xR1cL&imv!}F1dF7 zm%!f9{RFlC4rN1&{u6QD=j9uG&Zi~k$OSxPH`}B}Xohb(ba>jKS_IKha@_Y&!mnfq z>#Hk6WnjY#|L3g8C|06jLTsb5KmLdAQC+20973+grgXq*O_mb_X2A(35qLD<1ME;o zPMF6caeumeZT>Ol5c)p{)%6#hRMIX>ml|(;q4F1J>Rg`DyhY6%Iz`hMySKfA;=vmaE7HSF1Q zm?UrvHS{Q36t*vCL}IDZauN)7XlVnur{|fam}6h8>r2<&OT25cJIWky%ygs0x5+Vt zQTc@rYWbm1&|UXt8Lo0GsvFShGh>OyyFiv*S$3k>&4|Y_%ahZo4J+%csBY)4 zxf%98Hw%hfpCop`S~r?{dL7EBN5TGBm4gr0YHYs-)^yyH*qA810ZxUQGQ2`h^N)I0 zX9Aj5kx%!-j{ViFhvT!9)Q>xS+S-b`%IO1*YTIe{zkb*ZRk}OVNJf2$wR(YGYHR1_ z{QdpB$V|o0LjqXbLvS@qA}Ka-i{6)9V|&x_>`gBapjGO98&3c~RdbK73wHq0LFf@b z*-ZY^XxQ(G=Kt?-aE|b*TES$d>9{JunW}(Z&LD1Bu+7eD3T(F+>GJbu{TuI94MOUL z#(A^}*}<((S#_811DW)13zoyw(bFBD+ZSp@zB}~tji$I}JudHSzR11FWVgxxhlsnk zD!!`B)o-v8I&Qb(y<67WAjI-%nedo-6J7|Pc~7#d7JE7aDGw<4;gqH6B~S#P;yD&A z3(}b7W%i$1`BpQ;zd0c}^3zPt=48+K6W}KnoNElQ+N6-?<1n1DVPtuT&k3nvE*6)& z&v?`(KY)E>&+g8FMGZ2Gwdz@QN2WkC%%yz~a{`(Kr1ZKI8tE7AX|09NTWilbyI~*V z#~Tih6hsBzA_|#QPb0#Od_7;(8`(N`M`=Y}ERff!?*%8+nc4462~LpL8P&Ko{c6Bz zL3)DDN(>>0wKz4&fg)vo5Wbx8=c0wSUC8`Qq@%yL@E$C#!dc&-4o5>C zGzH+lckr?_@0}RbQz%fSRD^#WsK_I;J01};EY+5<54)-dEDHIV-OkzS229=nhbEKU zmH&jCY1o*L0Frvepupcx|6K^B<&UqWyMGy zP`we3PXEPf*xyLoA4|@Pv2P31sWyKSU1G!i4Zv=r8FbiQej8_YTRsEW zbUg3K<@jfLk3T@`mefy|*BHPxGi7yp_;RxweD%nIV)Ls#K5T%zW`dq6TbQYH>s85f(H z2qQiP?}{exOGt)| z>kW}p0PBgu;mO~QPoD~jf#O2Wl!gK zUU?74AX|PPfmnfkFg>Yg@(QQE2m1WyBrxq^%2yEN560}$>z>CO^!83?_#1Eu;=tF5 z?VHhz+cOqWxBmDL=0z;W$MC3Vx5fCV<4j_r?zC3x9VU3q@7K?woc07i(P}B?j<=<9 z=6`;(1wU~=cqMZ)+a%FMMdX3AfYl2Jej0%8(#pn!{hwF18NVi6e~sq0?@x7^$U%-3 zXaBMSTJW?gn+x7I6!Sfo-b>(msP3K33+jH=QL7W1PrLaO(ECTespf&xq-S;-_uE@q zE0fIVpKK==B^91PF!^@*>U-jF6P1Rh`bQ5kEmUYD_7z#z<;nf@MY9NbMxw6qJMbOF z(9V=ar~XlYhlta{+IzuPoRYFtU~{#%FO~O_o{1^%+t0U@K30AE5pn1SiGGhY{teHV z{%fwd9%X1ofkJv-@?pNy_3GsXTSo03{pr7$DIJyBl1rACPs7|108t|fr4b?X11pPl z?n8oLYCg@oji3GE8}e(c=b;HP2h#SZb&eg{~xZR<@Y@*+<@f141? z4yqr!`Nbw0jP);npp9aaDxk>2^z}c^X=!heUe)$|d-uE$Z_%onO1b73@t%QwG@MYh z)C^b64&#;c5L^0nf85>G!QX$YZ8KVk;tb!?T^TqRMj^9!F8aLHyD!wSIk`@9lI-HY zsxNcXev;7O?e>1ReQro#edW|?xeze7y}|)estTz1QANjBvC}!~=bIUXJJ3 z_YVr7@8;rId)kky z^4f7%hC$ood!-iNTKNVwglN1Xvzr@*oOtQG_~^yqQk@}3I*Do7WG3g;s!EMZZaV8N zKmES(1LAS9HTe`?hI!@0qe@G;iO(K`PWP5uU)Jy7R01Ty8lAo~6X>TLBCDZlAb{4v zY2}k{bQP{FkdW~R^04wetJa#Ch2`Gu{Yh%CjB1F4oj6NGncx7ZB?mwfd5PML#xaQK z`~F#o0(jJ8@m85QhN81?C%7jUaK=k`=0CcsfyE7KEie8DsA}XSP!5{~R3mJ!H7U?* zKy?F>c5E?J89tOK4c=(3*(RiWzs|#DefM_A$7L5>YXTOvt~CMBv}+|mP;Wm|A0Uw% zbUijD$@*ZA)^)BWRNCIzia4fxxiek3)xQ#}`y~MBiCD%7dV`(eYg&c_s}Xb|k$%yA zg1$Mfy|XKfz2=Dq3jLe(keMY!zA#dkj!+I%ryDAi9j%me?waJ)&UVGm&fG~2GYU5- z>Zo++sID4CLflxF9z7s(goQ44bOTYG?b?2*ZLc3l$ROL&V=5>f8Y(SEd6=CD?2i+Rt98-zjX zLJ4PCXjYsH7cL?7Y#zps`SA=_lLqlkB-p6|uR;k~FW^9hE9>~-!rsGtJAXW!ODF7$ zr^c-|AwRYL1-^4aVL?K4_HxT++5{7*_4u#2hreyavh*^_)F5)@E>Fz2qI=~J2#1m` zCy!1egGUBCf)YvDZV%rU^5eU;TO~petgC0gx76uFLj($*6DtL??4Hq4w0tzES?3*n zkWlhF33PUM<@ttPs-qA2pc5#6qfGAQ@VbyDX>r$wuIVbH^7mC+l8qdEOU-!Wm84Wc)`@%S9ZQ9Yx`S7~F~QMc%i4@vl;Ji%Q!bz zn_gF%*5j>WXp^RUP+1~lXaz6BPqJUhoA>Zm{RfsUUmjP0oCk-wfCXOw@)o&OB22f z^Cj)^RlcGA5m=U~xGE8C`-g(%cbea_cwlMH(U4(ev7YO7|?W3ZDc06+is7F(GV=`%cyZPrRB6eYy5`SNtICD zM*tC-K~}S!8sJ^>T$4X%+eKxHVX^3m+ET{0kW&bmcY`_qn{qj~5nG136WNDFO7{rF z50&Vw7;`Ti%Z#yb=6$u=tKVhD^)p*17969Ik*~@FJAN?;=4iD5&DAOBb@MFrZ?~H) zBp4Yvva+AUp12twOeioj|1klT+Vzl3mzUIkqz9y4CCRr}t(u!^{k9l?#GLSDaYNb{ zeS~#>z13JI*YUH=9kkx9Xspw8`W*xipzM#?xN28C3#eM|J@XEmY>8uh>UH_z(0JQz z17CH5cXGcj=x=lfUH|A$4)n9%fKNJBWBhvOR37n9zZBhU%^LnMo8HZT$317s9Zu%H zMC*Rl|CzZ)?7E2BB!fj%TQB2KE#vG<27+vTg=T$~dfkfox_EkAyw8AUT{8hgujRd< zh8xIl7P)SohJ<05UV7VLpz#-fPgb3F`XM{oLf9XH7y3$m^Jy@dEwk=VM3-IjGid%+h`ux`NXSc44c35gJJ$~C(kfX zk`9n2YK7z1b{wVH>X`h&Q0Ky2_c>O&hEA}A3M*bBH^ zyRU``y^Z6DCRnJzrC(i9v9kDOpU-Q*TjLYO(1$`KatK}L*X^l7VUQW_tNGaep46w% z#zgIw-pbiEV=~O4CZ>u9=gor4IKnZu06?!q^-#v1zT z>hE7|9-chT^3`7Ut%ac)$y?q2jz8zsbG)VHBkjKNNJ(KA_Vrdn+$$b`?_yVb9_ke* ztU&&$^2<-ipEdnW`A-+~tUTxRf0>b0|IzyK>6I}d4Ta->%oGqohZ~BGLv~50*?C`roOE`$4(1 zH;I{^>%$2e!Iv>#U&mi4y-ki7YNRJTxj}6t2i@g(tHQ?+EU4X;V)g|YE_&;@-+&Py#*S0t+gDw5fA>Fx zwVOpM{NbsC=WrSYPu9r>iMmC8r+^OMH|xCnpzf#W1G&SZ?TpkpZK2ljM){x5J;<)e z?HrqC-`qQm4{)NevN~#}Iy~R6hQ&4Wre^{N(J#JM_Nyw_ zHbw%w5ta4M3EhSYXsW{41c0XTeqRiqZZ8_0IaN*mN-w>U3hNa6{ybfv^vaW6u)I;q zf25F1=G3j-l_`VjjnP(3Z^iARP);MHRER!ww*Zs z63fy(+wfTZSfddfI!;=kv~L#2O{Ai1j7DJWfNdQnuXGpBX#C&aD-PX0UCs(h+#QQ& zK3cH3kLNm7=u)UK8QT_}xg$_)@%G~B#Cc_|nJ-Hp)H|i&4z|7Dp}Ksg_J;j%Q*O2Y zO-5WTe&N38?9r){)R&>p4^Z!{%v-6Sy#3~sxou&^0`s479tH zVd`f9#V>UVwtvY5W7ZyW2^tP|_U8=t+n>3P#_@HUq1r-T9|!)mgStI8t^D=z-7R|H zZxPY+aFdw|1mwMJ>iu$t7GJP>{rOvullBN(!J)e#!jFq@k^hgTvv6y|eY?1YC`d`S zw1AY9v;xwN(lC*d?p}yUOSi=6kQm(|p)`oJ#OQ{>V2r`oUcSHUdjE*$T=#R|=X?&P zB$?35)WY_kfSlg)^GnvMl&)>yEo~a!DYW(2Dlib^A4C9?GG*hK{9-KMsqhP^19t$! zbmnZT@rlQ!+Gqu>1MAs=%5+nOm|GD4MBK&5Ayn#i0@ z>OajK#R~qF&BVAB-o~O}1+w1?fgaC=40#oR!^tvRF++>o!%)gCkyPZKR-kJh_GO?% zG0@!bwuK5>DxX~pW-9HXGlbZd>3*Ds#ZET|Pj_=otCm1XrstgY5p4VQbf{or)H3wH z8mf#-kNAK!C9ED#uI#fe*=H+XDIqRVs!yOS6fiolXQTtNznOELxv$&2U&(j9Q1G-a z^K$QvtQ`e_ekF|@qDvVc_yig?_oO?Wa-x|W&KQZV>xb|od%Tf-fK6g0r0QMFru=^q zsJ=_p6rimNIO!SS=ow@vY2s?gJ#Mr8*Jk$<4uF{`Gj!q4o`9~9_s%8 ze82yzR6KqljI)AGUqwwO$!}LZrXk^-+4I!F2wR7uV)?ExF{;$WLjjIp<)?K@cJ9(U zk-F{h)@my>>UzXC+xz$o+zpu6+3bZRyf91jkL$rxfvBL0xQodc$3uzxQs-`WSZ3Z629*)ABC{XJ4)pazl zkfP$+`-&6jJL~5}xw=!WXL3}?$I@qME@Yt{-qU9INMYHTI!~XhM}0mvf!8&LYc-7? z4Gp`GBH#;3gQLs01U zhOS^bj9|%n&)JRGj+4Jliom5}$cpmT(zXAnq`rGlIr6=XQX|yz%$IhiN9-`Cdl1$s z!pu8DAjiyL_47Cpj@9&~&(OEdoS)8qT+0k0t@&5C3bb9Al%!nvB)TZDz?B<%C*+rc z!Q57_F}uv%VE~JpEnYaPJvAP>JazB4F4gKvRQe(eNz1H1=;wf#k};*?3_ljz;r>(Ztt z`I5}G(#VlhMDrT-bOGiGaA-Y@`$AMX8&vwj;`$+R4C78roDut_-`pRnQ@(7;VV2qj z3zGM6#whWB;$`aRXSByvA#e}x#;GI!1P@^`>1zF$cum(VT}bt>o1_b7c75N38Bp`# z&+;HG@hhh@Khyhe=4SxCn}469R(Zv$b9$DXa(Di|G~I!oQyZ9n$F)6afCYXwcL`ZfcB%O_B{sWJUx zY;xdRDaYS(uZ&Tu&vUzJW$syh87n`!LrcI253!Ik&BNP0CnW^q2fkZ0#bcS7ipE{}gfmuG&+l*8nudt9#9eZ+W{ZTMkfiy)-~MJ@ z{DdbcW{K`FPGFt(J)IIRoCZA;Z4=pMCyFOSqoSgn{RK7$Jm6qd2it;(nhve0ti1n| zrxa%EqQ$?-5rB^C_OjytDS#J9~;dj5<4V@#BDqZT;70Lj|{c)r!18 zz9}GV^0sWHyYx1J^#NIzfIJIB_HT}aB1_(27S#hAih;QW9V_|R+!9$H{jT=s2>TR> z(tfBgiX-&OEBdNX19YWx6J68=D#TUg$(I-^pvqur({Q%^Gm`!0XDG|0D@c04A7vmp zht(1{_#LIL5e2{{Qc^ccA-ca1)nEF0eMWpeUEy>z^U^OYpi~zdtSPI-As_uzNGTF3 z6IsgDZyer?m4jdobY(9%7DkvoQw2xR{?BoZIB89KH}Xow6G!W2dWUuuDe zp220=@Pi5QqeHqYoBZC$xsOPC{#6+K%aH%wO$8}re#ZeoK_f{hbP$?8RLZ+)td4Yj ziSehz1l+}72r$xLu}5#@5h=I>e@P@L z-@aN=St+XtzeWc+DVLkjHB2u_9PEA#vFp6nR8gbr_)ApcdPVV&1vPxIqO@ zvf-jnoR=4_^IS~#S@1SWR?)R4mSqS)7dL5qm0`6XGfUf$${dh26qV=Yxo!UD31T}U0C$l z-5Dj_pz418;le(wso=?zm7o5Lby_CBY(2uw>+)pq)#n|PE~8F@NN1|?H+lI-%@Hx) z6ii7kQL{MN7o_-B_>P}^L4$7vR)A<#Ojwx1&x?(zP>2P5@K=jmD_(cv++|l4+Inpn)iRKGVCRNrdsR4RO{_9c%N{dSD{yjHWF_i*ys|pp40ai$8jKNf z>50^Cci)OLl9d&B$=m0g^S{ z)kqYpTa*q>e?4PLTS|2EVC=mDH1dn5lPPhPmMYw`&isxS7nA%0AGl3zfWp#a*DXJc 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

P+CZ=JK0t{H&z1dW)-5raTI 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 Sqrq`zoMW9^qv?N9{7^cnbA1p1 literal 0 HcmV?d00001 diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 89ed3c8a..3cd3e65e 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -19,8 +19,9 @@ result = [] device = torch.device('cpu') -res_i = {"n_iter": [], "grid": [], "u": [], "v": []} -for n in range(10,60,10): +res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} +grd = [10, 20, 30, 40] +for n in grd: for i in range(10): x_grid = np.linspace(-5,5,n+1) @@ -221,11 +222,13 @@ v = val[0:,1] n_iter = [i for j in range(len(u))] N = [n for j in range(len(u))] + time_iter = [end - start for i in range(len(u))] res_i['n_iter'].extend(n_iter) res_i['grid'].extend(N) res_i['v'].extend(v) res_i['u'].extend(u) + res_i['time'].extend(time_iter) result.extend(res_i) df = pd.DataFrame(res_i) -df.to_csv('benchmarking_data/schrodinger_experiment_10_50_cache=False.csv',index=False) \ No newline at end of file +df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file diff --git a/finite_diffs.py b/finite_diffs.py index 8dc5150d..682b6460 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -1,31 +1,28 @@ from copy import copy -from typing import Union +from typing import Union, List, Tuple flatten_list = lambda t: [item for sublist in t for item in sublist] class Finite_diffs(): """ - Implements the Finite Difference method + Implements the Finite Difference method for a given operator. \n + `finite_diff_shift`, `scheme_build`, `sign_order` implement 1st order (in terms of accuracy) finite difference. \n + `second_order_shift`, `second_order_scheme_build`, `second_order_sign_order` implement respectively 2nd order (in terms of accuracy) finite difference. """ # the idea is simple - central difference changes [0]->([1]-[-1])/(2h) (in terms of grid nodes position) @staticmethod - def finite_diff_shift(diff, axis: int, mode: str) -> list: - """ 1st order shift - - Parameters - ---------- - diff - values of finite differences - axis - axis - mode - the finite difference type (i.e., forward, backward, central) - - Returns - ------- - diff_list - list with differences + def finite_diff_shift(diff: list, axis: int, mode: str) -> list: + """ + 1st order points shift for the corresponding finite difference mode. + + Args: + diff: values of finite differences. + axis: axis. + mode: the finite difference mode (i.e., forward, backward, central). + + Returns: + diff_list: list with shifted points """ @@ -69,25 +66,20 @@ def finite_diff_shift(diff, axis: int, mode: str) -> list: return [diff_p, diff_m] @staticmethod - def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : + def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: """ - Building first order finite-difference stencil. - - Parameters - ---------- - axes - axes that transforms using FDM. (operator in conventional form) - varn - Dimensionality of the problem. - axes_mode - 'central' or combination of 'f' and 'b'. - - Returns - ------- - finite_diff - transformed axes due to finite difference method. - direction_list - list, which contains directions (i.e, 'central', 'f', 'b'). + Building first order (in terms of accuracy) finite-difference stencil. + + Args: + axes: axes that transforms using FDM. (operator in conventional form) + varn: Dimensionality of the problem. + axes_mode: 'central' or combination of 'f' and 'b'. + + + Returns: + - finite_diff: transformed axes due to finite difference mode. + - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + """ order = len(axes) @@ -120,21 +112,17 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list] : return finite_diff, direction_list @staticmethod - def sign_order(order, mode: str, h = 1 / 2) -> list: + def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: """ Determines the sign of the derivative for the corresponding transformation from Finite_diffs.scheme_build() - Parameters - ---------- - order: - order of differentiation. - mode: - calculation type of finite difference. - h: + Args: + order: order of differentiation. + mode: calculation type of finite difference. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). - - Returns - ------- + Returns: + sign_list: list, with signs for corresponding points. """ """ @@ -159,12 +147,25 @@ def sign_order(order, mode: str, h = 1 / 2) -> list: start_list.append([sign / h, -sign / h]) sign_list = flatten_list(start_list) return sign_list + """ The following functions are forward and backward schemes combined """ @staticmethod - def second_order_shift(diff, axis, mode): + def second_order_shift(diff: list, axis: int, mode: str) -> list: + """ + 2nd order points shift for the corresponding finite difference mode. + + Args: + diff: values of finite differences. + axis: axis. + mode: the finite difference mode (i.e., forward, backward, central). + + Returns: + diff_list: list with shifted points. + + """ diff_1 = copy(diff) diff_2 = copy(diff) diff_3 = copy(diff) @@ -179,7 +180,22 @@ def second_order_shift(diff, axis, mode): return [diff_3, diff_2, diff_1] @staticmethod - def second_order_scheme_build(axes, varn, axes_mode): + def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list]: + """ + Building second order (in terms of accuracy) finite-difference stencil. + + Args: + axes: axes that transforms using FDM. (operator in conventional form) + varn: dimensionality of the problem. + axes_mode: 'central' or combination of 'f' and 'b'. + + + Returns: + - finite_diff: transformed axes due to finite difference mode. + - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + + + """ order = len(axes) finite_diff = [] direction_list = [] @@ -210,7 +226,21 @@ def second_order_scheme_build(axes, varn, axes_mode): return finite_diff, direction_list @staticmethod - def second_order_sign_order(order, mode, h=1/2): + def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: + """ + Determines the sign of the derivative for the corresponding point transformation from `Finite_diffs.scheme_build`.\n + Same as `sign_order`, but more precise due to second order of accuracy. + + Args: + order: order of differentiation. + mode: calculation type of finite difference. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + + Returns: + sign_list: list, with signs for corresponding points. + + + """ sign_list = [1] for i in range(order): start_list = [] @@ -221,4 +251,3 @@ def second_order_sign_order(order, mode, h=1/2): start_list.append([-3 * (1 / (2 * h)) * sign, 4 * (1 / (2 * h)) * sign, -(1 / (2 * h)) * sign]) sign_list = flatten_list(start_list) return sign_list - diff --git a/points_type.py b/points_type.py index 9b427cda..5d83c885 100644 --- a/points_type.py +++ b/points_type.py @@ -9,21 +9,23 @@ class Points_type(): """ @staticmethod def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: - """Shifts all values of an array 'grid' on a value 'shift' in a direcion of - axis 'axis', somewhat is equivalent to a np.roll + """ + Shifts all values of an array 'grid' on a value 'shift' in a direction of + axis 'axis', somewhat is equivalent to a np.roll. + Parameters ---------- grid: torch.Tensor (torch.float64) - array of a n-D points + array of a n-D points. axis:int - axis to which the shift is applied + axis to which the shift is applied. shift: float - shift value + shift value. Returns ------- grid_shift: torch.Tensor (torch.float64) - shifted array of a n-D points + shifted array of a n-D points. """ grid_shift = grid.clone() @@ -32,19 +34,20 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: @staticmethod def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: - """Test if points in `p` are in `hull` + """ + Test if points in `p` are in `hull` `p` should be a `NxK` coordinates of `N` points in `K` dimensions `hull` is either a scipy.spatial.Delaunay object or the `MxK` array of the coordinates of `M` points in `K`dimensions for which Delaunay triangulation - will be computed + will be computed. Parameters ---------- p: torch.Tensor (torch.float64) - shifted array of a n-D points + shifted array of a n-D points. hull: - initial array of a n-D points + initial array of a n-D points. Returns ------- in_hull_array: @@ -65,13 +68,14 @@ def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: return np.array(((p <= upbound) & (p >= lowbound)).reshape(-1)) @staticmethod - def point_typization(grid:torch.Tensor) -> dict: - """Allocating subsets for FD (i.e., 'f', 'b', 'central'). + def point_typization(grid: torch.Tensor) -> dict: + """ + Allocating subsets for FD (i.e., 'f', 'b', 'central'). Parameters ---------- grid : torch.Tensor (torch.float64) - array of a n-D points + array of a n-D points. Returns ------- @@ -83,7 +87,7 @@ def point_typization(grid:torch.Tensor) -> dict: 'f' means that if we add small number to a position of corresponding coordinate we stay in the 'hull' 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull' + of corresponding coordinate we stay in the 'hull'. """ direction_list = [] for axis in range(grid.shape[1]): @@ -117,18 +121,17 @@ def point_typization(grid:torch.Tensor) -> dict: @staticmethod def grid_sort(grid: torch.Tensor) -> dict: """ - Sorting grid points for each subset + Sorting grid points for each subset from result Points_type.point_typization. Parameters ---------- grid : torch.Tensor (torch.float64) - array of a n-D points - + array of a n-D points. Returns ------- grid_dict : dict - sorted grid in each subset (see Points_type.point_typization) + sorted grid in each subset (see Points_type.point_typization). """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) diff --git a/solver.py b/solver.py index d0f7cc72..c306873f 100644 --- a/solver.py +++ b/solver.py @@ -1,93 +1,161 @@ - import torch import numpy as np import matplotlib.pyplot as plt from matplotlib import cm + +import input_preprocessing from cache import Model_prepare +from typing import Union import os import sys import datetime -def grid_format_prepare(coord_list, mode='NN'): - if type(coord_list)==torch.Tensor: + +def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: str = 'NN') -> torch.Tensor: + """ + Prepares grid to a general form. Further, formatted grid can be processed + by Points_type.point_typization for 'NN' and 'autograd' methods. + + Parameters + ---------- + coord_list + list with coordinates. + mode + Calculation method. (i.e., "NN", "autograd", "mat") + + Returns + ------- + grid + grid in a general form + """ + if type(coord_list) == torch.Tensor: print('Grid is a tensor, assuming old format, no action performed') return coord_list - if mode=='NN' or mode =='autograd': - if len(coord_list)==1: - coord_list=torch.tensor(coord_list) - grid=coord_list.reshape(-1,1).float() + if mode == 'NN' or mode == 'autograd': + if len(coord_list) == 1: + coord_list = torch.tensor(coord_list) + grid = coord_list.reshape(-1, 1).float() else: - coord_list_tensor=[] + coord_list_tensor = [] for item in coord_list: - if isinstance(item,(np.ndarray)): + if isinstance(item, (np.ndarray)): coord_list_tensor.append(torch.from_numpy(item)) else: coord_list_tensor.append(item) - grid=torch.cartesian_prod(*coord_list_tensor).float() - elif mode=='mat': + grid = torch.cartesian_prod(*coord_list_tensor).float() + elif mode == 'mat': grid = np.meshgrid(*coord_list) grid = torch.tensor(np.array(grid)) return grid + class Solver(Model_prepare): - def __init__(self, grid, equal_cls, model, mode, weak_form=None): + """ + High-level interface for solving equations. + """ + def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + model: torch.nn.Sequential, mode: str): + """ + High-level interface for solving equations. + + Parameters + ---------- + grid + array of a n-D points. + equal_cls + object from input_preprocessing (see input_preprocessing.Equation). + model + neural network. + mode + Calculation method. (i.e., "NN", "autograd", "mat"). + """ super().__init__(grid, equal_cls, model, mode) - self.weak_form = weak_form - def optimizer_choice(self, optimizer, learning_rate): - if optimizer=='Adam': - if self.mode =='NN' or self.mode == 'autograd': + def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ + Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: + """ + Parameters + ---------- + optimizer: + optimizer choice (Adam, SGD, LBFGS). + learning_rate: + determines the step size at each iteration while moving toward a minimum of a loss function. + + Returns + ------- + optimizer + torch.optimizer object as is. + + """ + if optimizer == 'Adam': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.Adam(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.Adam([self.model.requires_grad_()], lr=learning_rate) - - elif optimizer=='SGD': - if self.mode =='NN' or self.mode == 'autograd': + + elif optimizer == 'SGD': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.SGD(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.SGD([self.model.requires_grad_()], lr=learning_rate) - - elif optimizer=='LBFGS': - if self.mode =='NN' or self.mode == 'autograd': + + elif optimizer == 'LBFGS': + if self.mode == 'NN' or self.mode == 'autograd': optimizer = torch.optim.LBFGS(self.model.parameters(), lr=learning_rate) - elif self.mode =='mat': + elif self.mode == 'mat': optimizer = torch.optim.LBFGS([self.model.requires_grad_()], lr=learning_rate) - + else: print('Wrong optimizer chosen, optimization was not performed') return self.model - + return optimizer + def solution_print(self, title: Union[str, None] = None, solution_print: bool = False, + solution_save: bool = True, save_dir: Union[str, None] = None): + """ + Visualizes the resulting solution. - def solution_print(self,title=None,solution_print=False,solution_save=True,save_dir=None): - if save_dir==None: - img_dir=os.path.join(os.path.dirname( __file__ ), 'img') - if not(os.path.isdir(img_dir)): + Parameters + ---------- + title + as is. + solution_print + draws a figure. + solution_save: + saves figure. + save_dir: + a directory where saved figure in. + """ + if save_dir == None: + img_dir = os.path.join(os.path.dirname(__file__), 'img') + if not (os.path.isdir(img_dir)): os.mkdir(img_dir) - directory=os.path.abspath(os.path.join(img_dir,str(datetime.datetime.now().timestamp())+'.png')) + directory = os.path.abspath(os.path.join(img_dir, str(datetime.datetime.now().timestamp()) + '.png')) else: - if not(os.path.isdir(save_dir)): - os.mkdir(save_dir) - directory=os.path.join(save_dir, str(datetime.datetime.now().timestamp())+'.png') + directory = os.path.join(save_dir, str(datetime.datetime.now().timestamp()) + '.png') if self.mode == 'NN' or self.mode == 'autograd': nvars_model = self.model(self.grid).shape[-1] nparams = self.grid.shape[1] fig = plt.figure() for i in range(nvars_model): if nparams == 1: - ax1 = fig.add_subplot(1,nvars_model,i+1) - if title!=None: - ax1.set_title(title+' variable {}'.format(i)) - ax1.scatter(self.grid.detach().numpy().reshape(-1), self.model(self.grid)[:,i].detach().numpy().reshape(-1)) + ax1 = fig.add_subplot(1, nvars_model, i + 1) + if title != None: + ax1.set_title(title + ' variable {}'.format(i)) + ax1.scatter(self.grid.detach().numpy().reshape(-1), + self.model(self.grid).detach().numpy().reshape(-1)) else: - ax1 = fig.add_subplot(1,nvars_model,i+1,projection='3d') + ax1 = fig.add_subplot(1, nvars_model, i + 1, projection='3d') - if title!=None: - ax1.set_title(title+' variable {}'.format(i)) + if title != None: + ax1.set_title(title + ' variable {}'.format(i)) - ax1.plot_trisurf(self.grid[:, 0].detach().numpy().reshape(-1), self.grid[:, 1].detach().numpy().reshape(-1), - self.model(self.grid)[:,i].detach().numpy().reshape(-1), cmap=cm.jet, linewidth=0.2, alpha=1) + ax1.plot_trisurf(self.grid[:, 0].detach().numpy().reshape(-1), + self.grid[:, 1].detach().numpy().reshape(-1), + self.model(self.grid)[:, i].detach().numpy().reshape(-1), cmap=cm.jet, + linewidth=0.2, alpha=1) ax1.set_xlabel("x1") ax1.set_ylabel("x2") if solution_print: @@ -109,7 +177,7 @@ def solution_print(self,title=None,solution_print=False,solution_save=True,save_ elif nparams == 2: fig = plt.figure() ax = fig.add_subplot(111, projection='3d') - if title!=None: + if title != None: ax.set_title(title) ax.plot_trisurf(self.grid[0].reshape(-1), self.grid[1].reshape(-1), self.model.reshape(-1).detach().numpy(), cmap=cm.jet, linewidth=0.2, alpha=1) @@ -121,13 +189,73 @@ def solution_print(self,title=None,solution_print=False,solution_save=True,save_ plt.savefig(directory) plt.close() + def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, learning_rate: float = 1e-4, + eps: float = 1e-5, tmin: int = 1000, tmax: float = 1e5, nmodels: Union[int, None] = None, + name: Union[str, None] = None, abs_loss: Union[None, float] = None, use_cache: bool = True, + cache_dir: str = '../cache/', cache_verbose: bool = False, save_always: bool = False, + print_every: Union[int, None] = 100, cache_model: Union[torch.nn.Sequential, None] = None, + patience: int = 5, loss_oscillation_window: int = 100, no_improvement_patience: int = 1000, + model_randomize_parameter: Union[int,float] = 0, optimizer_mode: str = 'Adam', + step_plot_print: Union[bool, int] = False, step_plot_save: Union[bool, int] = False, + image_save_dir: Union[str, None] = None) -> torch.nn.Sequential: + """ + High-level interface for solving equations. + + Parameters + ---------- + lambda_bound + an arbitrary chosen constant, influence only convergence speed. + verbose + more detailed info about training process. + learning_rate + determines the step size at each iteration while moving toward a minimum of a loss function. + eps + arbitrarily small number that uses for loss comparison criterion. + tmax + maximum execution time. + nmodels + ? + name + model name if saved. + abs_loss: Union[None, float] + absolute loss???. + use_cache + as is. + cache_dir + directory where saved cache in. + cache_verbose + more detailed info about models in cache. + save_always + ???? + print_every + prints the state of each given iteration to the command line. + cache_model + model that uses in cache + patience + if the loss is less than a certain value, then the counter increases, + when it reaches the given patience, the calculation stops. + loss_oscillation_window + + no_improvement_patience + + model_randomize_parameter + creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + optimizer_mode + optimizer choice (Adam, SGD, LBFGS). + step_plot_print + draws a figure through each given step. + step_plot_save + saves a figure through each given step. + image_save_dir + a directory where saved figure in. + + Returns + ------- + model + neural network. + - def solve(self, lambda_bound=10, verbose=False, learning_rate=1e-4, eps=1e-5, tmin=1000, - tmax=1e5,nmodels=None,name=None, abs_loss=None, - use_cache=True,cache_dir='../cache/',cache_verbose=False, - save_always=False,print_every=100,cache_model=None, - patience=5,loss_oscillation_window=100,no_improvement_patience=1000, - model_randomize_parameter=0, optimizer_mode='Adam',step_plot_print=False,step_plot_save=False,image_save_dir=None): + """ # prepare input data to uniform format r = self.create_random_fn(model_randomize_parameter) # use cache if needed @@ -135,113 +263,105 @@ def solve(self, lambda_bound=10, verbose=False, learning_rate=1e-4, eps=1e-5, tm self.model, min_loss = self.cache(cache_dir=cache_dir, nmodels=nmodels, lambda_bound=lambda_bound, - weak_form=self.weak_form, cache_verbose=cache_verbose, model_randomize_parameter=model_randomize_parameter, cache_model=cache_model) optimizer = self.optimizer_choice(optimizer_mode, learning_rate) - + if True: - #if not use_cache: - min_loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) - - save_cache=False - - if min_loss >0.1 or save_always: # why 0.1? - save_cache=True - - + # if not use_cache: + min_loss = self.loss_evaluation(lambda_bound=lambda_bound) + + save_cache = False + + if min_loss > 0.1 or save_always: # why 0.1? + save_cache = True + # standard NN stuff if verbose: - print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(),min_loss)) - + print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(), min_loss)) + t = 0 - - last_loss=np.zeros(loss_oscillation_window)+float(min_loss) - line=np.polyfit(range(loss_oscillation_window),last_loss,1) + + last_loss = np.zeros(loss_oscillation_window) + float(min_loss) + line = np.polyfit(range(loss_oscillation_window), last_loss, 1) def closure(): nonlocal cur_loss optimizer.zero_grad() - loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) - + loss = self.loss_evaluation(lambda_bound=lambda_bound) + loss.backward() cur_loss = loss.item() return loss - - stop_dings=0 - t_imp_start=0 + + stop_dings = 0 + t_imp_start = 0 # to stop train proceduce we fit the line in the loss data - #if line is flat enough 5 times, we stop the procedure - cur_loss=min_loss - while stop_dings<=patience: + # if line is flat enough 5 times, we stop the procedure + cur_loss = min_loss + while stop_dings <= patience: optimizer.step(closure) - if cur_loss!=cur_loss: - print('Loss is equal to NaN, something went wrong (LBFGS+high leraning rate and pytorch<1.12 could be the problem)') - break - - last_loss[(t-1)%loss_oscillation_window]=cur_loss + last_loss[t % loss_oscillation_window] = cur_loss - - if cur_loss0: - stop_dings+=1 - if self.mode =='NN' or self.mode =='autograd': + if t % loss_oscillation_window == 0: + line = np.polyfit(range(loss_oscillation_window), last_loss, 1) + if abs(line[0] / cur_loss) < eps and t > 0: + stop_dings += 1 + if self.mode == 'NN' or self.mode == 'autograd': self.model.apply(r) if verbose: print('[{}] Oscillation near the same loss'.format(datetime.datetime.now())) print(info_string) if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t),solution_print=step_plot_print,solution_save=step_plot_save,save_dir=image_save_dir) - - if (t-t_imp_start==no_improvement_patience): + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + + if (t - t_imp_start == no_improvement_patience): if verbose: - print('[{}] No improvement in {} steps'.format(datetime.datetime.now(),no_improvement_patience)) + print('[{}] No improvement in {} steps'.format(datetime.datetime.now(), no_improvement_patience)) print(info_string) if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t),solution_print=step_plot_print,solution_save=step_plot_save,save_dir=image_save_dir) - t_imp_start=t - stop_dings+=1 - if self.mode =='NN' or self.mode =='autograd': - self.model.apply(r) + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + t_imp_start = t + stop_dings += 1 + if self.mode == 'NN' or self.mode == 'autograd': + self.model.apply(r) - - if abs_loss!=None and cur_loss tmax: break if (save_cache and use_cache) or save_always: - if self.mode=='mat': - self.save_model_mat(cache_dir=cache_dir,name=name) + if self.mode == 'mat': + self.save_model_mat(cache_dir=cache_dir, name=name) else: - self.save_model(self.model, self.model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir,name=name) + self.save_model(self.model, self.model.state_dict(), optimizer.state_dict(), cache_dir=cache_dir, + name=name) return self.model - - - - - diff --git a/test.ipynb b/test.ipynb new file mode 100644 index 00000000..19bc6ee8 --- /dev/null +++ b/test.ipynb @@ -0,0 +1,401 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 223, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import torch\n", + "import pandas as pd\n", + "import scipy\n", + "from scipy.io import loadmat\n", + "import seaborn as sns\n", + "from points_type import *\n", + "from matplotlib import cm\n", + "from input_preprocessing import *\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "from metrics import *\n", + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": 228, + "outputs": [], + "source": [ + "test_data = loadmat('examples/benchmarking_data/schrodinger_test.mat')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 229, + "outputs": [], + "source": [ + "data = test_data['uu'].reshape(-1,1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 230, + "outputs": [], + "source": [ + "u = np.real(data).reshape(-1)\n", + "v = np.imag(data).reshape(-1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 127, + "outputs": [], + "source": [ + "x_grid = np.linspace(-5,5,256)\n", + "t_grid = np.linspace(0,np.pi/2,201)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 138, + "outputs": [], + "source": [ + "n = [10, 20, 30, 40]\n", + "dct = {'grid': [], 'interpolated_values_u': []}\n", + "for number in n:\n", + " x_grid = np.linspace(-5,5,number+1)\n", + " t_grid = np.linspace(0,np.pi/2,number+1)\n", + "\n", + " x = torch.from_numpy(x_grid)\n", + " t = torch.from_numpy(t_grid)\n", + "\n", + " grid = torch.cartesian_prod(x, t).float()\n", + " interpolated_values = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", + " N = [number for i in range(len(interpolated_values))]\n", + " dct['grid'].extend(N)\n", + " dct['interpolated_values_u'].extend(interpolated_values)\n", + "test_data = pd.DataFrame(dct)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 177, + "outputs": [], + "source": [ + "experiment_data_10 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[10]_cache=False.csv')\n", + "experiment_data_20_30 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[20, 30]_cache=False.csv')\n", + "experiment_data_40 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[40]_cache=False.csv')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 178, + "outputs": [], + "source": [ + "time_list_20 = [2207.342264, 1902.780795 , 2051.769395, 1990.625440, 1669.295443, 1630.366187, 1723.594879, 1735.121449,\n", + " 1989.412900, 1873.436806]\n", + "time_list_30 = [3609.354969, 3564.459932, 3626.499491, 3613.533968, 3818.807240, 3496.345418, 3819.675368,\n", + " 3774.777136, 3795.635416, 3678.129626]\n", + "time_20 = []\n", + "for val in time_list_20:\n", + " time_20_i = [val for i in range(21*21)]\n", + " time_20.append(time_20_i)\n", + "\n", + "time_30 = []\n", + "for val in time_list_30:\n", + " time_30_i = [val for i in range(31*31)]\n", + " time_30.append(time_30_i)\n", + "\n", + "time_20 = np.concatenate(time_20)\n", + "time_30 = np.concatenate(time_30)\n", + "time_20_30 = np.concatenate((time_20, time_30))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 179, + "outputs": [], + "source": [ + "experiment_data_20_30['time'] = time_20_30" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 180, + "outputs": [], + "source": [ + "experiment_data = pd.concat([experiment_data_10, experiment_data_20_30, experiment_data_40])" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 181, + "outputs": [ + { + "data": { + "text/plain": " n_iter grid u v time\n0 0 10 0.022888 -0.000939 614.424292\n1 0 10 0.041829 0.003819 614.424292\n2 0 10 0.055094 0.011037 614.424292\n3 0 10 0.062073 0.018570 614.424292\n4 0 10 0.065190 0.025084 614.424292\n... ... ... ... ... ...\n16805 9 40 0.029098 0.052447 7034.597967\n16806 9 40 0.028391 0.053487 7034.597967\n16807 9 40 0.027643 0.054499 7034.597967\n16808 9 40 0.026854 0.055485 7034.597967\n16809 9 40 0.026025 0.056450 7034.597967\n\n[32040 rows x 5 columns]", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
n_itergriduvtime
00100.022888-0.000939614.424292
10100.0418290.003819614.424292
20100.0550940.011037614.424292
30100.0620730.018570614.424292
40100.0651900.025084614.424292
..................
168059400.0290980.0524477034.597967
168069400.0283910.0534877034.597967
168079400.0276430.0544997034.597967
168089400.0268540.0554857034.597967
168099400.0260250.0564507034.597967
\n

32040 rows × 5 columns

\n
" + }, + "execution_count": 181, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "experiment_data" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 191, + "outputs": [ + { + "data": { + "text/plain": "604.3163278102875" + }, + "execution_count": 191, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "i = 1\n", + "n = 10\n", + "experiment_data.query(f'n_iter == {i} and grid == {n}')['time'].values[0]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 208, + "outputs": [], + "source": [ + "experiment_result = {'grid': [], 'n_iter': [], 'rmse': [],'nrmse': [], 'time': []}\n", + "for grid in range(10,50,10):\n", + " for n_iter in range(10):\n", + " test = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", + " result = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['u'].values\n", + " rmse = np.sqrt(np.mean((test - result) ** 2))\n", + " nrmse = rmse / np.std(result)\n", + " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", + " experiment_result['grid'].append(grid+1)\n", + " experiment_result['n_iter'].append(n_iter)\n", + " experiment_result['rmse'].append(rmse)\n", + " experiment_result['nrmse'].append(nrmse)\n", + " experiment_result['time'].append(time)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 209, + "outputs": [], + "source": [ + "data = pd.DataFrame(experiment_result)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 210, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 210, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 2)\n", + "\n", + "sns.boxplot(ax=axes[0],x='grid', y='time', data=data , showfliers=False)\n", + "\n", + "sns.boxplot(ax=axes[1],x='grid', y='rmse', data=data, showfliers=False)\n" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 233, + "outputs": [], + "source": [ + "x_grid = np.linspace(-5,5,256)\n", + "t_grid = np.linspace(0,np.pi/2,201)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()\n", + "# model_interp = test_data[test_data['grid'] == 10]['interpolated_values_u'].values" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 237, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 237, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", + " v, cmap=cm.jet,linewidth=0.2, alpha=1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 216, + "outputs": [ + { + "data": { + "text/plain": "array([ 0.02695056, 0.03260382, 0.03420716, 0.03475574, 0.03492699,\n 0.034309 , 0.03360063, 0.03225105, 0.03112513, 0.02763927,\n 0.02636017, 0.07295037, 0.07319679, 0.069523 , 0.06700413,\n 0.06497201, 0.06289575, 0.06013422, 0.05698216, 0.05429713,\n 0.05016175, 0.04734092, 0.19711746, 0.1959615 , 0.19299055,\n 0.19102151, 0.1856891 , 0.17916657, 0.17192488, 0.16365532,\n 0.15508521, 0.14466002, 0.13431266, 0.52562333, 0.51784725,\n 0.49690626, 0.47210287, 0.44857975, 0.43657531, 0.4349855 ,\n 0.43444197, 0.42871452, 0.40757898, 0.37171966, 1.28071124,\n 1.19795536, 0.97999627, 0.71583666, 0.52882028, 0.52176611,\n 0.69010228, 0.92236583, 1.08294288, 1.08007742, 0.90557495,\n 1.99958073, 1.76528341, 0.98348639, -0.58226342, -2.94717013,\n -3.68001601, -0.72895298, 1.52340548, 2.18368684, 2.02259221,\n 1.41672212, 1.31929761, 1.22996009, 0.99357603, 0.70483754,\n 0.4996009 , 0.49408717, 0.68434882, 0.94443911, 1.12189913,\n 1.11994926, 0.93233271, 0.54579459, 0.53729191, 0.51428934,\n 0.48712315, 0.46181896, 0.44922325, 0.44867047, 0.44995444,\n 0.44506521, 0.42373231, 0.3863336 , 0.20492919, 0.20358779,\n 0.20035814, 0.19838182, 0.1929824 , 0.18638219, 0.179006 ,\n 0.17072315, 0.16164543, 0.15096439, 0.14012327, 0.0758565 ,\n 0.07634097, 0.07252998, 0.06995601, 0.0676208 , 0.0653251 ,\n 0.06267691, 0.0591192 , 0.05621535, 0.05225826, 0.0491113 ,\n 0.02802405, 0.03258097, 0.0342325 , 0.03482958, 0.03496365,\n 0.034333 , 0.03373345, 0.03231509, 0.03101465, 0.02774415,\n 0.02632516])" + }, + "execution_count": 216, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 231, + "outputs": [ + { + "data": { + "text/plain": "array([0.02695056, 0.02827012, 0.0288274 , ..., 0.02668994, 0.02647879,\n 0.02632516])" + }, + "execution_count": 231, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "u" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From eeb33590b85551ce808ed6e8df39cdae449a606c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 10 Nov 2022 16:00:18 +0300 Subject: [PATCH 140/225] Some docs improvements --- cache.py | 117 +++++++++++++------------------- config.py | 9 +-- examples/example_schrodinger.py | 28 +++++--- finite_diffs.py | 11 +-- points_type.py | 76 ++++++++------------- solver.py | 18 ++--- 6 files changed, 103 insertions(+), 156 deletions(-) diff --git a/cache.py b/cache.py index 059827dd..282ddd09 100644 --- a/cache.py +++ b/cache.py @@ -10,7 +10,9 @@ import os import glob import numpy as np -from typing import Union +from typing import Union, Tuple, Any + +from torch import Tensor from metrics import Solution from input_preprocessing import Equation, EquationMixin @@ -31,14 +33,11 @@ def create_random_fn(eps: Union[int,float]): """ Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - Parameters - ---------- - eps: - randomize parameter - - Returns - ------- + Args: + eps: randomize parameter + Returns: + randomize_params: smth """ def randomize_params(m): if type(m)==torch.nn.Linear or type(m)==torch.nn.Conv2d: @@ -47,13 +46,12 @@ def randomize_params(m): return randomize_params - def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', + def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/', nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: ''' Looking for a saved cache. - Parameters - ---------- + Args: lambda_bound: float an arbitrary chosen constant, influence only convergence speed. cache_dir: str @@ -63,8 +61,7 @@ def cache_lookup(self, lambda_bound = 0.001, cache_dir: str = '../cache/', cache_verbose: bool more detailed info about models in cache. - Returns - ------- + Returns: best_checkpoint min_loss @@ -138,18 +135,12 @@ def save_model(self, prep_model: torch.nn.Sequential, state: dict, optimizer_sta """ Saved model in a cache (uses for 'NN' and 'autograd' methods). - Parameters - ---------- - prep_model - model to save - state - a dict holding current model state (i.e., dictionary that maps each layer to its parameter tensor). - optimizer_state - a dict holding current optimization state (i.e., values, hyperparameters). - cache_dir - directory where saved cache in. - name - name for a model + Args: + prep_model: model to save. + state: a dict holding current model state (i.e., dictionary that maps each layer to its parameter tensor). + optimizer_state: a dict holding current optimization state (i.e., values, hyperparameters). + cache_dir: directory where saved cache in. + name: name for a model. """ if name==None: name=str(datetime.datetime.now().timestamp()) @@ -166,8 +157,7 @@ def save_model_mat(self, cache_dir: str = '../cache/', name: Union[str, None] = """ Saved model in a cache (uses for 'mat' method). - Parameters - ---------- + Args: cache_dir a directory where saved cache in. name @@ -203,21 +193,17 @@ def closure(): self.save_model(cache_model,cache_model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir, name=name) - def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> tuple[Any, dict]: """ - ??? + Smth - Parameters - ---------- - trained_model - ??? - cache_verbose: - more detailed info about models in cache. + Args: + trained_model: smth + cache_verbose: more detailed info about models in cache. - Returns - ------- - model - optimizer.state_dict + Returns: + model: NN or mat + optimizer.state_dict: dict """ optimizer = torch.optim.Adam(self.model.parameters(), lr=0.001) @@ -240,21 +226,18 @@ def closure(): return self.model, optimizer.state_dict() - def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[torch.nn.Sequential, dict]: + def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ + tuple[Any, None], tuple[Any, Union[dict, Any]]]: """ - ??? + Smth - Parameters - ---------- - cache_checkpoint - ??? - cache_verbose - more detailed info about models in cache. + Args: + cache_checkpoint: smth + cache_verbose: more detailed info about models in cache. - Returns - ------- - model - optimizer_state + Returns: + model: + optimizer_state: """ # do nothing if cache is empty if cache_checkpoint==None: @@ -281,29 +264,23 @@ def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, cache_verbose: bool,model_randomize_parameter: Union[float, None], - cache_model: torch.nn.Sequential) -> Union[torch.nn.Sequential, torch.Tensor]: + cache_model: torch.nn.Sequential) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: """ Restores the model from the cache and uses it for retraining. - Parameters - ---------- - cache_dir - a directory where saved cache in. - nmodels - ??? - lambda_bound - an arbitrary chosen constant, influence only convergence speed. - cache_verbose - more detailed info about models in cache. - model_randomize_parameter - Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - cache_model - cached model + Args: + cache_dir: a directory where saved cache in. + nmodels: smth + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + cache_verbose: more detailed info about models in cache. + model_randomize_parameter: Creates a random model parameters (weights, biases) multiplied with a given + randomize parameter. + cache_model: cached model - Returns - ------- - model - min_loss + + Returns: + model: NN or mat + min_loss: min loss as is. """ r = self.create_random_fn(model_randomize_parameter) diff --git a/config.py b/config.py index 9c185cf8..a41e034d 100644 --- a/config.py +++ b/config.py @@ -117,13 +117,11 @@ def __init__(self, *args): If there is passed path to a custom config, we try to load it and change default parameters - Parameters - ---------- + Args: config_path: str, optional path to a custom config - Returns - ------- + Returns: self: Config config used in solver.optimization_solver function """ @@ -157,8 +155,7 @@ def set_parameter(self, parameter_string: str, value: Union[bool,float, int, Non We run checks to see we set them corretly - Parameters - ---------- + Args: parameter_string: string in format 'module.parameter' diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 3cd3e65e..dd7e472c 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -20,7 +20,7 @@ result = [] device = torch.device('cpu') res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10, 20, 30, 40] +grd = [10] for n in grd: for i in range(10): @@ -194,14 +194,20 @@ schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') @@ -211,9 +217,9 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=True, learning_rate=1e-3, + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=100,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) diff --git a/finite_diffs.py b/finite_diffs.py index 682b6460..60a83c46 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -22,8 +22,7 @@ def finite_diff_shift(diff: list, axis: int, mode: str) -> list: mode: the finite difference mode (i.e., forward, backward, central). Returns: - diff_list: list with shifted points - + diff_list: list with shifted points. """ # """ @@ -75,12 +74,9 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: varn: Dimensionality of the problem. axes_mode: 'central' or combination of 'f' and 'b'. - Returns: - finite_diff: transformed axes due to finite difference mode. - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). - - """ order = len(axes) finite_diff = [] @@ -164,7 +160,6 @@ def second_order_shift(diff: list, axis: int, mode: str) -> list: Returns: diff_list: list with shifted points. - """ diff_1 = copy(diff) diff_2 = copy(diff) @@ -193,8 +188,6 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[li Returns: - finite_diff: transformed axes due to finite difference mode. - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). - - """ order = len(axes) finite_diff = [] @@ -238,8 +231,6 @@ def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: Returns: sign_list: list, with signs for corresponding points. - - """ sign_list = [1] for i in range(order): diff --git a/points_type.py b/points_type.py index 5d83c885..c427f309 100644 --- a/points_type.py +++ b/points_type.py @@ -13,19 +13,14 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: Shifts all values of an array 'grid' on a value 'shift' in a direction of axis 'axis', somewhat is equivalent to a np.roll. - Parameters - ---------- - grid: torch.Tensor (torch.float64) - array of a n-D points. - axis:int - axis to which the shift is applied. - shift: float - shift value. - - Returns - ------- - grid_shift: torch.Tensor (torch.float64) - shifted array of a n-D points. + Args: + grid: array of a n-D points. + axis: axis to which the shift is applied. + shift: shift value. + + Returns: + grid_shift: shifted array of a n-D points. + """ grid_shift = grid.clone() @@ -42,16 +37,13 @@ def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: coordinates of `M` points in `K`dimensions for which Delaunay triangulation will be computed. - Parameters - ---------- - p: torch.Tensor (torch.float64) - shifted array of a n-D points. - hull: - initial array of a n-D points. - Returns - ------- - in_hull_array: - array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. + Args: + p: shifted array of a n-D points. + hull: initial array of a n-D points. + + Returns: + in_hull_array: array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. + """ if p.shape[1] > 1: if not isinstance(hull, Delaunay): @@ -72,22 +64,15 @@ def point_typization(grid: torch.Tensor) -> dict: """ Allocating subsets for FD (i.e., 'f', 'b', 'central'). - Parameters - ---------- - grid : torch.Tensor (torch.float64) - array of a n-D points. - - Returns - ------- - point_type : dict - dictionary point:type with a points in a 'grid' above - type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string - is a dimension n - 'f' means that if we add small number to a position of corresponding - coordinate we stay in the 'hull' - 'b' means that if we subtract small number from o a position - of corresponding coordinate we stay in the 'hull'. + Args: + grid: array of a n-D points. + + Returns: + point_type: type with a points in a 'grid' above. Type may be 'central' - inner point + and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add + small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we + subtract small number from o a position of corresponding coordinate we stay in the 'hull'. + """ direction_list = [] for axis in range(grid.shape[1]): @@ -123,15 +108,12 @@ def grid_sort(grid: torch.Tensor) -> dict: """ Sorting grid points for each subset from result Points_type.point_typization. - Parameters - ---------- - grid : torch.Tensor (torch.float64) - array of a n-D points. + Args: + grid: tarray of a n-D points. + + Returns: + grid_dict: sorted grid in each subset (see Points_type.point_typization). - Returns - ------- - grid_dict : dict - sorted grid in each subset (see Points_type.point_typization). """ point_type = Points_type.point_typization(grid) point_types = set(point_type.values()) diff --git a/solver.py b/solver.py index c306873f..eacc22ca 100644 --- a/solver.py +++ b/solver.py @@ -59,8 +59,7 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa """ High-level interface for solving equations. - Parameters - ---------- + Args: grid array of a n-D points. equal_cls @@ -75,15 +74,13 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: """ - Parameters - ---------- + Args: optimizer: optimizer choice (Adam, SGD, LBFGS). learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. - Returns - ------- + Returns: optimizer torch.optimizer object as is. @@ -117,8 +114,7 @@ def solution_print(self, title: Union[str, None] = None, solution_print: bool = """ Visualizes the resulting solution. - Parameters - ---------- + Args: title as is. solution_print @@ -201,8 +197,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea """ High-level interface for solving equations. - Parameters - ---------- + Args: lambda_bound an arbitrary chosen constant, influence only convergence speed. verbose @@ -249,8 +244,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea image_save_dir a directory where saved figure in. - Returns - ------- + Returns: model neural network. From d1486d9fac034e8720bc97311a4a2591dcd28c15 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:11:36 +0300 Subject: [PATCH 141/225] Update requirements.txt --- requirements.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6af3841d..0ea69fc1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -matplotlib==3.6.0; python_version == '3.9' -numpy==1.23.4 -pandas==1.5.0 -scipy==1.9.2 -seaborn==0.12.0 -torch==1.12.1 +matplotlib +numpy +pandas +scipy +seaborn +torch autodocsumm From 72ee11b67f383990f17018446e943f6d21368afd Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 10 Nov 2022 19:27:51 +0300 Subject: [PATCH 142/225] Create index.rst --- docs/source/index.rst | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 docs/source/index.rst diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 00000000..7f8633a1 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,44 @@ +{\rtf1\ansi\ansicpg1251\cocoartf2639 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 HelveticaNeue-Bold;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue0;\red202\green202\blue202; +\red70\green137\blue204;\red183\green111\blue179;\red167\green197\blue152;\red255\green255\blue255;\red27\green31\blue35; +} +{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\csgray\c0\c0;\cssrgb\c83137\c83137\c83137; +\cssrgb\c33725\c61176\c83922;\cssrgb\c77255\c52549\c75294;\cssrgb\c70980\c80784\c65882;\cssrgb\c100000\c100000\c100000;\cssrgb\c14118\c16078\c18431; +} +\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 +\deftab720 +\pard\pardeftab720\partightenfactor0 + +\f0\fs24 \cf2 \cb3 \expnd0\expndtw0\kerning0 +\outl0\strokewidth0 \strokec4 Welcome to TEDEouS documentation!\ +\pard\pardeftab720\partightenfactor0 + +\f1\b \cf2 \strokec5 ================================== +\f0\b0 \strokec4 \ +\ +\pard\pardeftab720\partightenfactor0 +\cf2 \strokec6 .. container::\strokec4 \ +\ + | There is contained main documentation for the \strokec5 `TEDEouS framework `__\strokec4 .\ +\ +Content:\ +\pard\pardeftab720\partightenfactor0 + +\f1\b \cf2 \strokec5 ======== +\f0\b0 \strokec4 \ +\pard\pardeftab720\partightenfactor0 +\cf2 \strokec6 .. toctree::\strokec4 \ + \strokec6 :maxdepth:\strokec4 \strokec7 1\strokec4 \ +\ + gefest/index\ + components/index\ + contribution\ + faq\ + about\ +\ +\pard\pardeftab720\sa320\partightenfactor0 +\cf2 \cb8 \outl0\strokewidth0 **TEDEouS** (**T**\\orch **E**\\\cb1 \kerning1\expnd0\expndtw0 xhaustive **D**\\ifferential **E**\\quation **S**\\olver\cb8 \expnd0\expndtw0\kerning0 +)\ +Combines power of torch, numerical methods and math overall to conquer and solve ALL \{O,P\}DEs\cb1 \ +\cb8 There are some examples to provide a little insight to an operator form} \ No newline at end of file From 6fce1052b3efb2d905104f41bba9f4bb28f99deb Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:36:45 +0300 Subject: [PATCH 143/225] Update index.rst --- docs/source/index.rst | 50 +++++++++++-------------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 7f8633a1..7fdfb091 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,44 +1,20 @@ -{\rtf1\ansi\ansicpg1251\cocoartf2639 -\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 HelveticaNeue-Bold;} -{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue0;\red202\green202\blue202; -\red70\green137\blue204;\red183\green111\blue179;\red167\green197\blue152;\red255\green255\blue255;\red27\green31\blue35; -} -{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\csgray\c0\c0;\cssrgb\c83137\c83137\c83137; -\cssrgb\c33725\c61176\c83922;\cssrgb\c77255\c52549\c75294;\cssrgb\c70980\c80784\c65882;\cssrgb\c100000\c100000\c100000;\cssrgb\c14118\c16078\c18431; -} -\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 -\deftab720 -\pard\pardeftab720\partightenfactor0 +Welcome to TEDEouS documentation!\ +================================== +.. container:: -\f0\fs24 \cf2 \cb3 \expnd0\expndtw0\kerning0 -\outl0\strokewidth0 \strokec4 Welcome to TEDEouS documentation!\ -\pard\pardeftab720\partightenfactor0 + | There is contained main documentation for the \strokec5 `TEDEouS framework `__. -\f1\b \cf2 \strokec5 ================================== -\f0\b0 \strokec4 \ -\ -\pard\pardeftab720\partightenfactor0 -\cf2 \strokec6 .. container::\strokec4 \ -\ - | There is contained main documentation for the \strokec5 `TEDEouS framework `__\strokec4 .\ -\ -Content:\ -\pard\pardeftab720\partightenfactor0 +Content: +======== +.. toctree:: + :maxdepth: 1 -\f1\b \cf2 \strokec5 ======== -\f0\b0 \strokec4 \ -\pard\pardeftab720\partightenfactor0 -\cf2 \strokec6 .. toctree::\strokec4 \ - \strokec6 :maxdepth:\strokec4 \strokec7 1\strokec4 \ -\ - gefest/index\ + tedeous/index\ components/index\ contribution\ faq\ about\ -\ -\pard\pardeftab720\sa320\partightenfactor0 -\cf2 \cb8 \outl0\strokewidth0 **TEDEouS** (**T**\\orch **E**\\\cb1 \kerning1\expnd0\expndtw0 xhaustive **D**\\ifferential **E**\\quation **S**\\olver\cb8 \expnd0\expndtw0\kerning0 -)\ -Combines power of torch, numerical methods and math overall to conquer and solve ALL \{O,P\}DEs\cb1 \ -\cb8 There are some examples to provide a little insight to an operator form} \ No newline at end of file + +**TEDEouS** (**T**\orch **E**\xhaustive **D**\ifferential **E**\quation **S**\olver) +Combines power of torch, numerical methods and math overall to conquer and solve ALL {O,P}DEs. +There are some examples to provide a little insight to an operator form From 855409bf62b64b222ed307032d8a44530ce28b7e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 10 Nov 2022 19:37:10 +0300 Subject: [PATCH 144/225] Update index.rst --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 7fdfb091..9191a212 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -2,7 +2,7 @@ Welcome to TEDEouS documentation!\ ================================== .. container:: - | There is contained main documentation for the \strokec5 `TEDEouS framework `__. + | There is contained main documentation for the `TEDEouS framework `__. Content: ======== From 97ffdf6d5f9dca20e4656ca07f560c28c7849c3e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 14 Nov 2022 00:23:55 +0300 Subject: [PATCH 145/225] Update example_schrodinger.py --- examples/example_schrodinger.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index dd7e472c..0e1de56b 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -20,7 +20,7 @@ result = [] device = torch.device('cpu') res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10] +grd = [10, 20, 30, 40, 50] for n in grd: for i in range(10): @@ -209,7 +209,7 @@ torch.nn.Linear(100, 2) ) - equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') @@ -217,9 +217,9 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1, verbose=True, learning_rate=0.8, + model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=100,step_plot_save=True,image_save_dir=img_dir) + save_always=False,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) From 75a09cd3d2895985e834a4d3c4a42e092808f7eb Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 13:13:46 +0300 Subject: [PATCH 146/225] Some docs stuff --- docs/source/Modules/cache.rst | 6 ++++++ docs/source/Modules/config.rst | 6 ++++++ docs/source/Modules/finite_diffs.rst | 6 ++++++ docs/source/Modules/input_preprocessing.rst | 6 ++++++ docs/source/Modules/metrics.rst | 5 +++++ docs/source/Modules/points_type.rst | 5 +++++ docs/source/Modules/solver.rst | 5 +++++ 7 files changed, 39 insertions(+) create mode 100644 docs/source/Modules/cache.rst create mode 100644 docs/source/Modules/config.rst create mode 100644 docs/source/Modules/finite_diffs.rst create mode 100644 docs/source/Modules/input_preprocessing.rst create mode 100644 docs/source/Modules/metrics.rst create mode 100644 docs/source/Modules/points_type.rst create mode 100644 docs/source/Modules/solver.rst diff --git a/docs/source/Modules/cache.rst b/docs/source/Modules/cache.rst new file mode 100644 index 00000000..76e2214c --- /dev/null +++ b/docs/source/Modules/cache.rst @@ -0,0 +1,6 @@ +Cache +===== + +..automodule:: cache + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst new file mode 100644 index 00000000..fc1411ca --- /dev/null +++ b/docs/source/Modules/config.rst @@ -0,0 +1,6 @@ +Config +====== + +..automodule:: config + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/finite_diffs.rst b/docs/source/Modules/finite_diffs.rst new file mode 100644 index 00000000..6f8396f4 --- /dev/null +++ b/docs/source/Modules/finite_diffs.rst @@ -0,0 +1,6 @@ +Finite difference method +======================== + +..automodule:: finite_diffs + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/input_preprocessing.rst b/docs/source/Modules/input_preprocessing.rst new file mode 100644 index 00000000..a7ecef95 --- /dev/null +++ b/docs/source/Modules/input_preprocessing.rst @@ -0,0 +1,6 @@ +Input preprocessing +=================== + +..automodule:: input_preprocessing + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/metrics.rst b/docs/source/Modules/metrics.rst new file mode 100644 index 00000000..0dbe90d7 --- /dev/null +++ b/docs/source/Modules/metrics.rst @@ -0,0 +1,5 @@ +Metrics +======= +..automodule:: metrics + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/points_type.rst b/docs/source/Modules/points_type.rst new file mode 100644 index 00000000..c0b93269 --- /dev/null +++ b/docs/source/Modules/points_type.rst @@ -0,0 +1,5 @@ +Points type + +..automodule:: points_type + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/solver.rst b/docs/source/Modules/solver.rst new file mode 100644 index 00000000..d0293b85 --- /dev/null +++ b/docs/source/Modules/solver.rst @@ -0,0 +1,5 @@ +Solver + +..automodule:: solver + :members: + :no-undoc-members: \ No newline at end of file From 5b147ea3d6d06d5b441499b9f2f304676efb4cb5 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 13:17:43 +0300 Subject: [PATCH 147/225] Update index.rst --- docs/source/index.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 9191a212..6bf54815 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,8 +10,9 @@ Content: :maxdepth: 1 tedeous/index\ - components/index\ - contribution\ + Install and setup\ + Modules/index\ + Examples\ faq\ about\ From b59f36aec02e53fb400675eda0c0e8fa0ebb0beb Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 13:41:17 +0300 Subject: [PATCH 148/225] Update index.rst --- docs/source/index.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 6bf54815..b34c177e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,9 +10,8 @@ Content: :maxdepth: 1 tedeous/index\ - Install and setup\ Modules/index\ - Examples\ + examples\ faq\ about\ From afa07ea5564bdf0710b8a7dc045e589f5e061139 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 13:54:59 +0300 Subject: [PATCH 149/225] Some docs stuff --- docs/source/about.rst | 4 ++++ docs/source/faq.rst | 4 ++++ docs/source/tedeous/examples.rst | 4 ++++ docs/source/tedeous/guide.rst | 4 ++++ docs/source/tedeous/index.rst | 1 + docs/source/tedeous/install.rst | 4 ++++ 6 files changed, 21 insertions(+) create mode 100644 docs/source/about.rst create mode 100644 docs/source/faq.rst create mode 100644 docs/source/tedeous/examples.rst create mode 100644 docs/source/tedeous/guide.rst create mode 100644 docs/source/tedeous/index.rst create mode 100644 docs/source/tedeous/install.rst diff --git a/docs/source/about.rst b/docs/source/about.rst new file mode 100644 index 00000000..4ab632d9 --- /dev/null +++ b/docs/source/about.rst @@ -0,0 +1,4 @@ +About us +======== + +TBA... \ No newline at end of file diff --git a/docs/source/faq.rst b/docs/source/faq.rst new file mode 100644 index 00000000..d450539d --- /dev/null +++ b/docs/source/faq.rst @@ -0,0 +1,4 @@ +FAQ +=== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/examples.rst b/docs/source/tedeous/examples.rst new file mode 100644 index 00000000..88c00f17 --- /dev/null +++ b/docs/source/tedeous/examples.rst @@ -0,0 +1,4 @@ +Examples +======== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst new file mode 100644 index 00000000..76866f2a --- /dev/null +++ b/docs/source/tedeous/guide.rst @@ -0,0 +1,4 @@ +Quick guide +=========== + +TBA... \ No newline at end of file diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst new file mode 100644 index 00000000..4d972879 --- /dev/null +++ b/docs/source/tedeous/index.rst @@ -0,0 +1 @@ +**This is all about TEDEouS** \ No newline at end of file diff --git a/docs/source/tedeous/install.rst b/docs/source/tedeous/install.rst new file mode 100644 index 00000000..302c7700 --- /dev/null +++ b/docs/source/tedeous/install.rst @@ -0,0 +1,4 @@ +Install +======= + +TBA... \ No newline at end of file From 0913aac96be8a7363e03f6b4bc8c529141fe72c9 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 22:42:01 +0300 Subject: [PATCH 150/225] Create index.rst --- docs/source/modules/index.rst | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/source/modules/index.rst diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst new file mode 100644 index 00000000..becb3532 --- /dev/null +++ b/docs/source/modules/index.rst @@ -0,0 +1,4 @@ +Modules +======= + +This one contain everything about modules into TEDEouS \ No newline at end of file From 9d7d7c81393be3bd2fe9276952d7c866ada36cbc Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 15:58:01 +0300 Subject: [PATCH 151/225] Update index.rst --- docs/source/index.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index b34c177e..441d07e8 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -11,7 +11,6 @@ Content: tedeous/index\ Modules/index\ - examples\ faq\ about\ From f044538bc383fc38441ee97769a587dd9845743a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 16:43:11 +0300 Subject: [PATCH 152/225] Update index.rst --- docs/source/index.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 441d07e8..6f044312 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -9,10 +9,10 @@ Content: .. toctree:: :maxdepth: 1 - tedeous/index\ - Modules/index\ - faq\ - about\ + tedeous/index + Modules/index + faq + about **TEDEouS** (**T**\orch **E**\xhaustive **D**\ifferential **E**\quation **S**\olver) Combines power of torch, numerical methods and math overall to conquer and solve ALL {O,P}DEs. From 7d69923a05f922b2ba67ad5b171de20cbdc66dc8 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:45:27 +0300 Subject: [PATCH 153/225] Delete index.rst --- docs/source/modules/index.rst | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 docs/source/modules/index.rst diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst deleted file mode 100644 index becb3532..00000000 --- a/docs/source/modules/index.rst +++ /dev/null @@ -1,4 +0,0 @@ -Modules -======= - -This one contain everything about modules into TEDEouS \ No newline at end of file From 1c102e755f363dad09db1dfda741dda3b8a989e0 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:47:10 +0300 Subject: [PATCH 154/225] Update config.rst --- docs/source/Modules/config.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst index fc1411ca..80dbfe7d 100644 --- a/docs/source/Modules/config.rst +++ b/docs/source/Modules/config.rst @@ -1,6 +1,6 @@ Config ====== -..automodule:: config +.. automodule:: config :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From e5d9c3f7e97563b91da334478fa83878d55b8bb0 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:06 +0300 Subject: [PATCH 155/225] Delete cache.rst --- docs/source/Modules/cache.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/cache.rst diff --git a/docs/source/Modules/cache.rst b/docs/source/Modules/cache.rst deleted file mode 100644 index 76e2214c..00000000 --- a/docs/source/Modules/cache.rst +++ /dev/null @@ -1,6 +0,0 @@ -Cache -===== - -..automodule:: cache - :members: - :no-undoc-members: \ No newline at end of file From 973c6cacd70bcd252424967a7b4bae8a87fd599e Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:23 +0300 Subject: [PATCH 156/225] Delete config.rst --- docs/source/Modules/config.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/config.rst diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst deleted file mode 100644 index 80dbfe7d..00000000 --- a/docs/source/Modules/config.rst +++ /dev/null @@ -1,6 +0,0 @@ -Config -====== - -.. automodule:: config - :members: - :no-undoc-members: From f77a6f33766575fbc82e531f69456b3ce123bb18 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:31 +0300 Subject: [PATCH 157/225] Delete finite_diffs.rst --- docs/source/Modules/finite_diffs.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/finite_diffs.rst diff --git a/docs/source/Modules/finite_diffs.rst b/docs/source/Modules/finite_diffs.rst deleted file mode 100644 index 6f8396f4..00000000 --- a/docs/source/Modules/finite_diffs.rst +++ /dev/null @@ -1,6 +0,0 @@ -Finite difference method -======================== - -..automodule:: finite_diffs - :members: - :no-undoc-members: \ No newline at end of file From de2e37e02f8968972fc6108b8f0dbebfa2d563a6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:37 +0300 Subject: [PATCH 158/225] Delete input_preprocessing.rst --- docs/source/Modules/input_preprocessing.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/input_preprocessing.rst diff --git a/docs/source/Modules/input_preprocessing.rst b/docs/source/Modules/input_preprocessing.rst deleted file mode 100644 index a7ecef95..00000000 --- a/docs/source/Modules/input_preprocessing.rst +++ /dev/null @@ -1,6 +0,0 @@ -Input preprocessing -=================== - -..automodule:: input_preprocessing - :members: - :no-undoc-members: \ No newline at end of file From c1c47bb4d3c5966273f47b7e677373efa66aa303 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:43 +0300 Subject: [PATCH 159/225] Delete metrics.rst --- docs/source/Modules/metrics.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/metrics.rst diff --git a/docs/source/Modules/metrics.rst b/docs/source/Modules/metrics.rst deleted file mode 100644 index 0dbe90d7..00000000 --- a/docs/source/Modules/metrics.rst +++ /dev/null @@ -1,5 +0,0 @@ -Metrics -======= -..automodule:: metrics - :members: - :no-undoc-members: \ No newline at end of file From 451be840fe0877d11d9964a6a226028e413c93f6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:49 +0300 Subject: [PATCH 160/225] Delete points_type.rst --- docs/source/Modules/points_type.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/points_type.rst diff --git a/docs/source/Modules/points_type.rst b/docs/source/Modules/points_type.rst deleted file mode 100644 index c0b93269..00000000 --- a/docs/source/Modules/points_type.rst +++ /dev/null @@ -1,5 +0,0 @@ -Points type - -..automodule:: points_type - :members: - :no-undoc-members: \ No newline at end of file From 45678c4750b344685720451355c57cf0f020b10a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:55 +0300 Subject: [PATCH 161/225] Delete solver.rst --- docs/source/Modules/solver.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/solver.rst diff --git a/docs/source/Modules/solver.rst b/docs/source/Modules/solver.rst deleted file mode 100644 index d0293b85..00000000 --- a/docs/source/Modules/solver.rst +++ /dev/null @@ -1,5 +0,0 @@ -Solver - -..automodule:: solver - :members: - :no-undoc-members: \ No newline at end of file From 1bc5f5dff69bb3eb21ae146363d06e2f7dba7cb4 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 22:51:32 +0300 Subject: [PATCH 162/225] docs stuff --- docs/source/modules/cache.rst | 6 ++++++ docs/source/modules/config.rst | 6 ++++++ docs/source/modules/finite_diffs.rst | 6 ++++++ docs/source/modules/index.rst | 4 ++++ docs/source/modules/input_preprocessing.rst | 6 ++++++ docs/source/modules/metrics.rst | 5 +++++ docs/source/modules/points_type.rst | 5 +++++ docs/source/modules/solver.rst | 5 +++++ 8 files changed, 43 insertions(+) create mode 100644 docs/source/modules/cache.rst create mode 100644 docs/source/modules/config.rst create mode 100644 docs/source/modules/finite_diffs.rst create mode 100644 docs/source/modules/index.rst create mode 100644 docs/source/modules/input_preprocessing.rst create mode 100644 docs/source/modules/metrics.rst create mode 100644 docs/source/modules/points_type.rst create mode 100644 docs/source/modules/solver.rst diff --git a/docs/source/modules/cache.rst b/docs/source/modules/cache.rst new file mode 100644 index 00000000..364566da --- /dev/null +++ b/docs/source/modules/cache.rst @@ -0,0 +1,6 @@ +Cache +===== + +.. automodule:: cache + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst new file mode 100644 index 00000000..67898cf2 --- /dev/null +++ b/docs/source/modules/config.rst @@ -0,0 +1,6 @@ +Config +====== + +.. automodule:: config + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/finite_diffs.rst b/docs/source/modules/finite_diffs.rst new file mode 100644 index 00000000..07f6d2f2 --- /dev/null +++ b/docs/source/modules/finite_diffs.rst @@ -0,0 +1,6 @@ +Finite difference method +======================== + +.. automodule:: finite_diffs + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst new file mode 100644 index 00000000..becb3532 --- /dev/null +++ b/docs/source/modules/index.rst @@ -0,0 +1,4 @@ +Modules +======= + +This one contain everything about modules into TEDEouS \ No newline at end of file diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst new file mode 100644 index 00000000..d15d4807 --- /dev/null +++ b/docs/source/modules/input_preprocessing.rst @@ -0,0 +1,6 @@ +Input preprocessing +=================== + +.. automodule:: input_preprocessing + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/metrics.rst b/docs/source/modules/metrics.rst new file mode 100644 index 00000000..1a9676b2 --- /dev/null +++ b/docs/source/modules/metrics.rst @@ -0,0 +1,5 @@ +Metrics +======= +.. automodule:: metrics + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst new file mode 100644 index 00000000..e48a461f --- /dev/null +++ b/docs/source/modules/points_type.rst @@ -0,0 +1,5 @@ +Points type + +.. automodule:: points_type + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst new file mode 100644 index 00000000..020ff92b --- /dev/null +++ b/docs/source/modules/solver.rst @@ -0,0 +1,5 @@ +Solver + +.. automodule:: solver + :members: + :no-undoc-members: \ No newline at end of file From 7bce9ff36d17212453e5572ebdfe68922921d35b Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:58:07 +0300 Subject: [PATCH 163/225] Update index.rst --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 6f044312..25201969 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,7 +10,7 @@ Content: :maxdepth: 1 tedeous/index - Modules/index + modules/index faq about From 18e5e33dfe8fcf0b0ce4d015209c744520491014 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 00:25:50 +0300 Subject: [PATCH 164/225] Update index.rst --- docs/source/tedeous/index.rst | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 4d972879..7b245ee5 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1 +1,9 @@ -**This is all about TEDEouS** \ No newline at end of file +**This is all about TEDEouS** + +.. toctree:: + :glob: + :maxdepth: 2 + + guide + install + examples From deaff6fdc05c52359b52f8d5d3b9ac3efdbb93a1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 00:27:32 +0300 Subject: [PATCH 165/225] Update index.rst --- docs/source/modules/index.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index becb3532..a593dc55 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -1,4 +1,16 @@ Modules ======= -This one contain everything about modules into TEDEouS \ No newline at end of file +This one contain everything about modules into TEDEouS + +.. toctree:: + :glob: + :maxdepth: 2 + + config + points_type + finite_diffs + input_preprocessing + metrics + cache + solver From 35d5b0dfa82c9fb4a194e08d1c94c674a0a6023a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:06:12 +0300 Subject: [PATCH 166/225] Update index.rst --- docs/source/tedeous/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 7b245ee5..622c816b 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1,3 +1,5 @@ +TEDEouS +======= **This is all about TEDEouS** .. toctree:: From 59137926b3f317435e279f7f86c613b47d35e017 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:27:47 +0300 Subject: [PATCH 167/225] Update points_type.rst --- docs/source/modules/points_type.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index e48a461f..2a85e07d 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -1,5 +1,10 @@ +=========== Points type +=========== + +Points type +~~~~~~~~~~~ .. automodule:: points_type :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 535a12fe156fc864e33bba98360f837540cff4e9 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:28:24 +0300 Subject: [PATCH 168/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index d15d4807..9e53c27a 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -1,6 +1,10 @@ +=================== Input preprocessing =================== +Input preprocessing +~~~~~~~~~~~~~~~~~~~ + .. automodule:: input_preprocessing :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 9f3ae8733d3393c53f28a3d96213f61fa308184a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:50:01 +0300 Subject: [PATCH 169/225] Update faq.rst --- docs/source/faq.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index d450539d..fb48daa5 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -1,4 +1,8 @@ FAQ === -TBA... \ No newline at end of file +Frequently asked questions and answers + +.. topic:: What is TEDEouS? + *The TEDEous is а differential equations solver using machine learning methods* + From a005379ac9510a43183ca189104b5374eddf45f4 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:50:48 +0300 Subject: [PATCH 170/225] Update faq.rst --- docs/source/faq.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index fb48daa5..18f9d6d3 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -4,5 +4,6 @@ FAQ Frequently asked questions and answers .. topic:: What is TEDEouS? + *The TEDEous is а differential equations solver using machine learning methods* From 1884b9c503585ade1de398cb8e96fa1981b3d2a2 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 17:54:42 +0300 Subject: [PATCH 171/225] Update index.rst --- docs/source/tedeous/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 622c816b..16f2e42c 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -1,5 +1,6 @@ TEDEouS ======= + **This is all about TEDEouS** .. toctree:: From 8a2e909318c317f4bee8b08f7eabefeffa167819 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:05:13 +0300 Subject: [PATCH 172/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 28 +++++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 9e53c27a..4774abed 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -2,9 +2,27 @@ Input preprocessing =================== -Input preprocessing -~~~~~~~~~~~~~~~~~~~ +class Equation +~~~~~~~~~~~~~~ +.. automodule:: input_preprocessing.Equation + +class Equation_mixin +~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_mixin + +class Equation_NN +~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_NN + +class Equation_mat +~~~~~~~~~~~~~~~~~~ + +.. automodule:: input_preprocessing.Equation_mat + +class Equation_autograd + +.. automodule:: input_preprocessing.Equation_autograd + -.. automodule:: input_preprocessing - :members: - :no-undoc-members: From a12e66628e5937d847aab0210dd4494e3ed865d3 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:05:31 +0300 Subject: [PATCH 173/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 4774abed..638c1a51 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -22,6 +22,7 @@ class Equation_mat .. automodule:: input_preprocessing.Equation_mat class Equation_autograd +~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd From d770d04569d4a7890b2f4ea79c4dd4baadf868c9 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:14:48 +0300 Subject: [PATCH 174/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 27 ++++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 638c1a51..bc5bf358 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -5,25 +5,44 @@ Input preprocessing class Equation ~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation + :members: + :no-undoc-members: + -class Equation_mixin +class EquationMixin ~~~~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.Equation_mixin - +.. automodule:: input_preprocessing.EquationMixin + :members: + :no-undoc-members: + +class EquationInt +~~~~~~~~~~~~~~~~~ +.. automodule:: input_preprocessing.EquationInt + :members: + :no-undoc-members: + + class Equation_NN ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_NN + :members: + :no-undoc-members: + class Equation_mat ~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_mat + :members: + :no-undoc-members: + class Equation_autograd ~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd - + :members: + :no-undoc-members: From 189c89eb9a1ffed6c49c2e0ffc19889c223123e1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 23:29:35 +0300 Subject: [PATCH 175/225] Update input_preprocessing.rst --- docs/source/modules/input_preprocessing.rst | 26 +++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index bc5bf358..74c2cfb1 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -4,45 +4,47 @@ Input preprocessing class Equation ~~~~~~~~~~~~~~ + .. automodule:: input_preprocessing.Equation - :members: - :no-undoc-members: + :members: + :no-undoc-members: class EquationMixin ~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.EquationMixin - :members: - :no-undoc-members: + :members: + :no-undoc-members: + class EquationInt ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.EquationInt - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_NN ~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_NN - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_mat ~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_mat - :members: - :no-undoc-members: + :members: + :no-undoc-members: class Equation_autograd ~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: input_preprocessing.Equation_autograd - :members: - :no-undoc-members: + :members: + :no-undoc-members: From e52c1e8d454e86b25049412282b52560c94f4961 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 18 Nov 2022 00:07:17 +0300 Subject: [PATCH 176/225] Docs fix --- cache.py | 18 ++++---------- config.py | 64 ++++++++++++++----------------------------------- finite_diffs.py | 50 ++------------------------------------ points_type.py | 12 ++++------ test.ipynb | 63 +++++++++++++++++++++++++++++++++++++++--------- 5 files changed, 81 insertions(+), 126 deletions(-) diff --git a/cache.py b/cache.py index 282ddd09..585277d9 100644 --- a/cache.py +++ b/cache.py @@ -1,9 +1,3 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Aug 24 11:50:12 2021 - -@author: user -""" import pickle import datetime import torch @@ -66,7 +60,6 @@ def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/' min_loss minimum error in pre-trained error - ''' files=glob.glob(cache_dir+'*.tar') # if files not found @@ -153,17 +146,14 @@ def save_model(self, prep_model: torch.nn.Sequential, state: dict, optimizer_sta 'optimizer_state_dict': optimizer_state}, cache_dir+name+'.tar') def save_model_mat(self, cache_dir: str = '../cache/', name: Union[str, None] = None, - cache_model: torch.nn.Sequential = None): + cache_model: torch.nn.Sequential = None) -> None: """ Saved model in a cache (uses for 'mat' method). Args: - cache_dir - a directory where saved cache in. - name - name for a model - cache_model - model to save + cache_dir: a directory where saved cache in. + name: name for a model + cache_model: model to save """ NN_grid=torch.from_numpy(np.vstack([self.grid[i].reshape(-1) for i in range(self.grid.shape[0])]).T).float() if cache_model==None: diff --git a/config.py b/config.py index a41e034d..d819daf7 100644 --- a/config.py +++ b/config.py @@ -1,12 +1,5 @@ -# -*- coding: utf-8 -*- -""" -Created on Sun Mar 13 14:13:37 2022 - -@author: Sashka -""" - from email.policy import default -from typing import Union +from typing import Union, Optional import json @@ -15,7 +8,6 @@ def read_config(name): config_data = json.load(config_file) return config_data - DEFAULT_CONFIG = """ { "Optimizer": { @@ -63,16 +55,11 @@ def check_module_name(module_name: str) -> bool: Check correctness of the 'first' level of config parameter name we call it module. - Parameters - ---------- - module_name: str - first level of a parameter of a custom config. - - Returns - ------- - module_correctness : bool - true if module presents in 'default' config. + Args: + module_name: first level of a parameter of a custom config. + Returns: + module_correctness: if module presents in 'default' config. """ if module_name in default_config.keys(): return True @@ -85,45 +72,32 @@ def check_param_name(module_name: str, param_name: str) -> bool: Check correctness of the 'first' level of config parameter name we call it module. - Parameters - ---------- - module_name: str - first level of a parameter of a custom config. - - Returns - ------- - module_correctness : bool - true if module presents in 'default' config. + Args: + module_name: first level of a parameter of a custom config. + param_name: specific parameter name. + Returns: + module_correctness: true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): return True else: return False - -''' -We can use old json load. However, it is good to check if the parameters named correctly -So, we make the full 'default' version of the config and load 'non-default' parameters -either from file or using method 'change_parameter' -''' - - class Config: - def __init__(self, *args): + def __init__(self: Union[str, Optional], *args): """ - We init config with default one + We initialize config with default one If there is passed path to a custom config, we try to load it and change default parameters Args: - config_path: str, optional - path to a custom config + config_path: path to a custom config Returns: - self: Config - config used in solver.optimization_solver function + self: config used in solver.optimization_solver function + """ self.params = default_config @@ -153,14 +127,12 @@ def set_parameter(self, parameter_string: str, value: Union[bool,float, int, Non We may want to just change default config parameters manually, without loading the .json - We run checks to see we set them corretly + We run checks to see we set them correctly Args: - parameter_string: - string in format 'module.parameter' + parameter_string: string in format 'module.parameter'. + value: value for the parameter. - value - value for the parameter """ module_name, param = parameter_string.split('.') diff --git a/finite_diffs.py b/finite_diffs.py index 60a83c46..cfcf7c89 100644 --- a/finite_diffs.py +++ b/finite_diffs.py @@ -24,35 +24,6 @@ def finite_diff_shift(diff: list, axis: int, mode: str) -> list: Returns: diff_list: list with shifted points. """ - - # """ - # we do the [0]->([1]-[-1])/(2h) transitions to the axes we need - # as an example d2u/dxdt - # u=[0,0] - # u-> du/dx: - # - # [0,0]->([1,0]-[-1,0])/(2h) - # - # du/dx->d2u/dxdt: - # - # [1,0]->([1,1]-[1,-1])/(2h*2tau) - # - # [-1,0]->([-1,1]-[-1,-1])/(2h*2tau) - # - # But we do not want to take signs into account (too complex), so - # - # u-> du/dx: - # - # [0,0]->[[1,0],[-1,0]] - # - # du/dx->d2u/dxdt: - # - # [[1,0],[-1,0]]->[[1,1],[1,-1],[-1,1],[-1,-1]] - # - # Since order is preserved we can compute signs afterwards - # - # """ - diff_p = copy(diff) diff_m = copy(diff) if mode == 'central': @@ -120,18 +91,6 @@ def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: Returns: sign_list: list, with signs for corresponding points. - """ - """ - From transformations above, we always start from +1 (1) - - Every +1 changes to ->[+1,-1] when order of differential rises - - [0,0] (+1) ->([1,0]-[-1,0]) ([+1,-1]) - - Every -1 changes to [-1,+1] - - [[1,0],[-1,0]] ([+1,-1])->[[1,1],[1,-1],[-1,1],[-1,-1]] ([+1,-1,-1,+1]) - """ sign_list = [1] for i in range(order): @@ -144,10 +103,6 @@ def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: sign_list = flatten_list(start_list) return sign_list - """ - The following functions are forward and backward schemes combined - """ - @staticmethod def second_order_shift(diff: list, axis: int, mode: str) -> list: """ @@ -184,10 +139,9 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[li varn: dimensionality of the problem. axes_mode: 'central' or combination of 'f' and 'b'. - Returns: - - finite_diff: transformed axes due to finite difference mode. - - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + finite_diff: transformed axes due to finite difference mode. + direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] diff --git a/points_type.py b/points_type.py index c427f309..02653de9 100644 --- a/points_type.py +++ b/points_type.py @@ -20,8 +20,6 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: Returns: grid_shift: shifted array of a n-D points. - - """ grid_shift = grid.clone() grid_shift[:, axis] = grid[:, axis] + shift @@ -68,10 +66,10 @@ def point_typization(grid: torch.Tensor) -> dict: grid: array of a n-D points. Returns: - point_type: type with a points in a 'grid' above. Type may be 'central' - inner point - and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add - small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we - subtract small number from o a position of corresponding coordinate we stay in the 'hull'. + type with a points in a 'grid' above. Type may be 'central' - inner point + and string of 'f' and 'b', where the length of the string is a dimension n. 'f' means that if we add + small number to a position of corresponding coordinate we stay in the 'hull'. 'b' means that if we + subtract small number from o a position of corresponding coordinate we stay in the 'hull'. """ direction_list = [] @@ -109,7 +107,7 @@ def grid_sort(grid: torch.Tensor) -> dict: Sorting grid points for each subset from result Points_type.point_typization. Args: - grid: tarray of a n-D points. + grid: array of a n-D points. Returns: grid_dict: sorted grid in each subset (see Points_type.point_typization). diff --git a/test.ipynb b/test.ipynb index 19bc6ee8..ea40f9c9 100644 --- a/test.ipynb +++ b/test.ipynb @@ -2,20 +2,11 @@ "cells": [ { "cell_type": "code", - "execution_count": 223, + "execution_count": 1, "metadata": { "collapsed": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "import numpy as np\n", "import torch\n", @@ -33,6 +24,36 @@ "%autoreload 2" ] }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [], + "source": [ + "import sys\n", + "import os" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 5, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", "execution_count": 228, @@ -44,6 +65,26 @@ "collapsed": false } }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [ + { + "data": { + "text/plain": "True" + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "torch.cuda.is_available()" + ], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", "execution_count": 229, From c7497d50c36c69f96b6006692396d71f5da7af66 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 18 Nov 2022 15:11:48 +0300 Subject: [PATCH 177/225] Update project structure --- examples/example_KdV.py | 11 +++-------- examples/example_KdV_matrix.py | 10 ++++------ examples/example_Lotka_Volterra.py | 5 ++--- examples/example_ODE_Legendre.py | 6 ++---- examples/example_ODE_Legendre_autograd.py | 9 ++------- examples/example_ODE_Legendre_matrix.py | 9 ++------- examples/example_Painleve_I.py | 9 ++++----- examples/example_SODtest.py | 8 +++----- examples/example_SODtest_autograd.py | 8 +++----- examples/example_heat.py | 6 +++--- examples/example_schrodinger.py | 7 ++----- examples/example_wave_autograd.py | 5 ++--- examples/example_wave_paper.py | 6 +++--- examples/example_wave_paper_matrix.py | 8 ++++---- examples/example_wave_periodic.py | 11 ++++------- examples/old_config/example_EPDE_form.py | 13 ++----------- examples/old_config/example_KdV_config.py | 11 ++--------- .../example_ODE_Legendre_matrix_config.py | 12 ++++-------- examples/old_config/example_wave_config.py | 6 ++---- examples/to_renew/example_Painleve_II.py | 9 +-------- examples/to_renew/example_Painleve_III.py | 9 +-------- examples/to_renew/example_Painleve_IV.py | 9 +-------- examples/to_renew/example_Painleve_V.py | 9 +-------- examples/to_renew/example_Painleve_VI.py | 9 +-------- .../to_renew/example_wave_comparison_deepxde.py | 8 +------- .../example_wave_comparison_deepxde_matrix.py | 5 +---- cache.py => tedeous/cache.py | 4 ++-- config.py => tedeous/config.py | 0 finite_diffs.py => tedeous/finite_diffs.py | 0 .../input_preprocessing.py | 4 ++-- metrics.py => tedeous/metrics.py | 0 points_type.py => tedeous/points_type.py | 0 solver.py => tedeous/solver.py | 7 +++---- 33 files changed, 67 insertions(+), 166 deletions(-) rename cache.py => tedeous/cache.py (99%) rename config.py => tedeous/config.py (100%) rename finite_diffs.py => tedeous/finite_diffs.py (100%) rename input_preprocessing.py => tedeous/input_preprocessing.py (99%) rename metrics.py => tedeous/metrics.py (100%) rename points_type.py => tedeous/points_type.py (100%) rename solver.py => tedeous/solver.py (98%) diff --git a/examples/example_KdV.py b/examples/example_KdV.py index 33af9b0c..997b5843 100644 --- a/examples/example_KdV.py +++ b/examples/example_KdV.py @@ -6,11 +6,6 @@ """ import torch import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -24,9 +19,9 @@ sys.path.append('../') -from solver import Solver -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation import time diff --git a/examples/example_KdV_matrix.py b/examples/example_KdV_matrix.py index cfe14509..365640b2 100644 --- a/examples/example_KdV_matrix.py +++ b/examples/example_KdV_matrix.py @@ -8,9 +8,7 @@ import numpy as np import torch import time -import pandas as pd -import matplotlib.pyplot as plt -from scipy.spatial import Delaunay + os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" import sys @@ -19,9 +17,9 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation +from tedeous.metrics import Solution diff --git a/examples/example_Lotka_Volterra.py b/examples/example_Lotka_Volterra.py index b9ba6e6d..954bab7b 100644 --- a/examples/example_Lotka_Volterra.py +++ b/examples/example_Lotka_Volterra.py @@ -11,7 +11,6 @@ import torch import numpy as np import matplotlib.pyplot as plt -import scipy from scipy import integrate import os @@ -22,8 +21,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver import time diff --git a/examples/example_ODE_Legendre.py b/examples/example_ODE_Legendre.py index 2f5e692f..a928c2ac 100644 --- a/examples/example_ODE_Legendre.py +++ b/examples/example_ODE_Legendre.py @@ -6,8 +6,6 @@ """ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import os import sys @@ -17,8 +15,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver from scipy.special import legendre import time diff --git a/examples/example_ODE_Legendre_autograd.py b/examples/example_ODE_Legendre_autograd.py index d0445100..fb4aeb14 100644 --- a/examples/example_ODE_Legendre_autograd.py +++ b/examples/example_ODE_Legendre_autograd.py @@ -7,10 +7,6 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D from scipy.special import legendre os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -23,9 +19,8 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver, grid_format_prepare -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_ODE_Legendre_matrix.py b/examples/example_ODE_Legendre_matrix.py index 1f58f464..0e125a0b 100644 --- a/examples/example_ODE_Legendre_matrix.py +++ b/examples/example_ODE_Legendre_matrix.py @@ -7,10 +7,6 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D from scipy.special import legendre os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -22,9 +18,8 @@ sys.path.append('../') -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_Painleve_I.py b/examples/example_Painleve_I.py index 4c1effcd..64cfc7d5 100644 --- a/examples/example_Painleve_I.py +++ b/examples/example_Painleve_I.py @@ -7,8 +7,7 @@ import torch import numpy as np import os -import matplotlib.pyplot as plt -from scipy.spatial import Delaunay + os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" import sys @@ -17,9 +16,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from metrics import Solution -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation import time device = torch.device('cpu') diff --git a/examples/example_SODtest.py b/examples/example_SODtest.py index 447f4e2c..ac8a4374 100644 --- a/examples/example_SODtest.py +++ b/examples/example_SODtest.py @@ -4,9 +4,7 @@ import time import matplotlib.pyplot as plt from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from scipy.spatial import Delaunay + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys @@ -18,8 +16,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver device = torch.device('cpu') diff --git a/examples/example_SODtest_autograd.py b/examples/example_SODtest_autograd.py index dfa64248..ee6e6af8 100644 --- a/examples/example_SODtest_autograd.py +++ b/examples/example_SODtest_autograd.py @@ -4,17 +4,15 @@ import time import matplotlib.pyplot as plt from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from scipy.spatial import Delaunay + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation device = torch.device('cpu') diff --git a/examples/example_heat.py b/examples/example_heat.py index 9c1826dc..952f700b 100644 --- a/examples/example_heat.py +++ b/examples/example_heat.py @@ -16,9 +16,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 0e1de56b..6a5c3e26 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -1,7 +1,5 @@ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import pandas as pd import os @@ -13,9 +11,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation result = [] device = torch.device('cpu') diff --git a/examples/example_wave_autograd.py b/examples/example_wave_autograd.py index c80186b9..a9a0bce9 100644 --- a/examples/example_wave_autograd.py +++ b/examples/example_wave_autograd.py @@ -6,7 +6,6 @@ """ import numpy as np import torch -import matplotlib.pyplot as plt import sys import os @@ -20,8 +19,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver diff --git a/examples/example_wave_paper.py b/examples/example_wave_paper.py index 6f741ef7..e8114435 100644 --- a/examples/example_wave_paper.py +++ b/examples/example_wave_paper.py @@ -17,9 +17,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time """ diff --git a/examples/example_wave_paper_matrix.py b/examples/example_wave_paper_matrix.py index ac3b384a..6252dbc6 100644 --- a/examples/example_wave_paper_matrix.py +++ b/examples/example_wave_paper_matrix.py @@ -8,7 +8,7 @@ import numpy as np import os import time -import pandas as pd + os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' import sys @@ -18,9 +18,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver, grid_format_prepare -from input_preprocessing import Equation -from metrics import Solution +from tedeous.solver import Solver, grid_format_prepare +from tedeous.input_preprocessing import Equation +from tedeous.metrics import Solution """ Preparing grid diff --git a/examples/example_wave_periodic.py b/examples/example_wave_periodic.py index 5c7428fb..d81b5b06 100644 --- a/examples/example_wave_periodic.py +++ b/examples/example_wave_periodic.py @@ -1,7 +1,5 @@ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import os @@ -13,12 +11,11 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation import time -device = torch.device('mps') +device = torch.device('cpu') # Grid x_grid = np.linspace(0,1,21) t_grid = np.linspace(0,1,21) @@ -116,7 +113,7 @@ model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-2, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every=500,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every=10,step_plot_print=False,step_plot_save=False,image_save_dir=img_dir) end = time.time() print('Time taken 10= ', end - start) \ No newline at end of file diff --git a/examples/old_config/example_EPDE_form.py b/examples/old_config/example_EPDE_form.py index ae3a2357..6ed4abb0 100644 --- a/examples/old_config/example_EPDE_form.py +++ b/examples/old_config/example_EPDE_form.py @@ -4,13 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -22,10 +15,8 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from config import Config -from solver import * -import time - +from tedeous.config import Config +from tedeous.solver import * t=np.array([0. , 0.00025, 0.0005 , 0.00075, 0.001 , 0.00125, 0.0015 , 0.00175, 0.002 , 0.00225, 0.0025 , 0.00275, 0.003 , 0.00325, diff --git a/examples/old_config/example_KdV_config.py b/examples/old_config/example_KdV_config.py index 5a23e10a..e07aa919 100644 --- a/examples/old_config/example_KdV_config.py +++ b/examples/old_config/example_KdV_config.py @@ -4,13 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -import scipy import os import sys @@ -23,9 +16,9 @@ sys.path.append('../') -from solver import * +from tedeous.solver import * import time -from config import Config +from tedeous.config import Config diff --git a/examples/old_config/example_ODE_Legendre_matrix_config.py b/examples/old_config/example_ODE_Legendre_matrix_config.py index bdef3967..8e071460 100644 --- a/examples/old_config/example_ODE_Legendre_matrix_config.py +++ b/examples/old_config/example_ODE_Legendre_matrix_config.py @@ -17,17 +17,13 @@ sys.path.append('../') import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import lbfgs_solution,matrix_optimizer,grid_format_prepare +from tedeous.solver import grid_format_prepare import time from scipy.special import legendre -from solver import matrix_cache_lookup + device = torch.device('cpu') -from cache import save_model -from solver import optimization_solver -from config import Config +from tedeous.solver import optimization_solver +from tedeous.config import Config """ Preparing grid diff --git a/examples/old_config/example_wave_config.py b/examples/old_config/example_wave_config.py index e421a726..d34e9cdd 100644 --- a/examples/old_config/example_wave_config.py +++ b/examples/old_config/example_wave_config.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' @@ -16,9 +14,9 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) sys.path.append('../') -from solver import * +from tedeous.solver import * # from cache import * -from config import Config +from tedeous.config import Config import time """ diff --git a/examples/to_renew/example_Painleve_II.py b/examples/to_renew/example_Painleve_II.py index f9e9477a..80751111 100644 --- a/examples/to_renew/example_Painleve_II.py +++ b/examples/to_renew/example_Painleve_II.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_III.py b/examples/to_renew/example_Painleve_III.py index 7997c49f..f7153fa6 100644 --- a/examples/to_renew/example_Painleve_III.py +++ b/examples/to_renew/example_Painleve_III.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_IV.py b/examples/to_renew/example_Painleve_IV.py index ac3908ef..7393e8c1 100644 --- a/examples/to_renew/example_Painleve_IV.py +++ b/examples/to_renew/example_Painleve_IV.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_V.py b/examples/to_renew/example_Painleve_V.py index ca12ca31..df93e738 100644 --- a/examples/to_renew/example_Painleve_V.py +++ b/examples/to_renew/example_Painleve_V.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_Painleve_VI.py b/examples/to_renew/example_Painleve_VI.py index 274d65a0..caf20a79 100644 --- a/examples/to_renew/example_Painleve_VI.py +++ b/examples/to_renew/example_Painleve_VI.py @@ -4,8 +4,6 @@ @author: user """ -import torch -import numpy as np import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" @@ -16,12 +14,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -import matplotlib.pyplot as plt -from matplotlib import cm -from matplotlib.ticker import LinearLocator, FormatStrFormatter -from mpl_toolkits.mplot3d import Axes3D -from solver import * +from tedeous.solver import * import time diff --git a/examples/to_renew/example_wave_comparison_deepxde.py b/examples/to_renew/example_wave_comparison_deepxde.py index 2a5414c1..4771d03e 100644 --- a/examples/to_renew/example_wave_comparison_deepxde.py +++ b/examples/to_renew/example_wave_comparison_deepxde.py @@ -4,10 +4,6 @@ @author: user """ -import torch -import numpy as np -import matplotlib.pyplot as plt -import scipy import os @@ -19,9 +15,7 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) - -from solver import * -from cache import * +from tedeous.cache import * import time """ diff --git a/examples/to_renew/example_wave_comparison_deepxde_matrix.py b/examples/to_renew/example_wave_comparison_deepxde_matrix.py index 61675494..4ea474ee 100644 --- a/examples/to_renew/example_wave_comparison_deepxde_matrix.py +++ b/examples/to_renew/example_wave_comparison_deepxde_matrix.py @@ -4,11 +4,8 @@ @author: user """ -import torch -import numpy as np -import os -from solver import * +from tedeous.solver import * import time """ diff --git a/cache.py b/tedeous/cache.py similarity index 99% rename from cache.py rename to tedeous/cache.py index 585277d9..b961582e 100644 --- a/cache.py +++ b/tedeous/cache.py @@ -8,8 +8,8 @@ from torch import Tensor -from metrics import Solution -from input_preprocessing import Equation, EquationMixin +from tedeous.metrics import Solution +from tedeous.input_preprocessing import Equation, EquationMixin class Model_prepare(Solution): """ diff --git a/config.py b/tedeous/config.py similarity index 100% rename from config.py rename to tedeous/config.py diff --git a/finite_diffs.py b/tedeous/finite_diffs.py similarity index 100% rename from finite_diffs.py rename to tedeous/finite_diffs.py diff --git a/input_preprocessing.py b/tedeous/input_preprocessing.py similarity index 99% rename from input_preprocessing.py rename to tedeous/input_preprocessing.py index b2385c14..4a488a27 100644 --- a/input_preprocessing.py +++ b/tedeous/input_preprocessing.py @@ -3,8 +3,8 @@ import numpy as np -from points_type import Points_type -from finite_diffs import Finite_diffs +from tedeous.points_type import Points_type +from tedeous.finite_diffs import Finite_diffs class EquationMixin(): @staticmethod diff --git a/metrics.py b/tedeous/metrics.py similarity index 100% rename from metrics.py rename to tedeous/metrics.py diff --git a/points_type.py b/tedeous/points_type.py similarity index 100% rename from points_type.py rename to tedeous/points_type.py diff --git a/solver.py b/tedeous/solver.py similarity index 98% rename from solver.py rename to tedeous/solver.py index eacc22ca..e4e43e9b 100644 --- a/solver.py +++ b/tedeous/solver.py @@ -3,11 +3,10 @@ import matplotlib.pyplot as plt from matplotlib import cm -import input_preprocessing -from cache import Model_prepare +from tedeous import input_preprocessing +from tedeous.cache import Model_prepare from typing import Union import os -import sys import datetime @@ -54,7 +53,7 @@ class Solver(Model_prepare): High-level interface for solving equations. """ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, - input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], model: torch.nn.Sequential, mode: str): """ High-level interface for solving equations. From e4a193310a71d6237204dad4342a623237658bab Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 16 Oct 2022 21:22:13 +0300 Subject: [PATCH 178/225] Some files + docs Added some docstrings and files for RTD --- examples/example_schrodinger.py | 70 +++++++++++++------------------ examples/example_wave_periodic.py | 11 +++-- 2 files changed, 35 insertions(+), 46 deletions(-) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 6a5c3e26..b4459f92 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -1,5 +1,7 @@ import torch import numpy as np +import matplotlib.pyplot as plt +import scipy import pandas as pd import os @@ -11,15 +13,16 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from tedeous.solver import Solver -from tedeous.input_preprocessing import Equation +from solver import Solver +from cache import Model_prepare +from input_preprocessing import Equation result = [] -device = torch.device('cpu') -res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10, 20, 30, 40, 50] -for n in grd: +# for n in range(10,60,10): +for n in range(10,11): + res_i = [] # model(grid)[i] for i in range(10): + device = torch.device('mps') x_grid = np.linspace(-5,5,n+1) t_grid = np.linspace(0,np.pi/2,n+1) @@ -191,22 +194,16 @@ schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) - - equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) + + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') @@ -214,24 +211,13 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, + save_always=True,no_improvement_patience=500,print_every = 500,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() - print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) - - val = model(grid).detach().numpy() - u = val[0:,0] - v = val[0:,1] - n_iter = [i for j in range(len(u))] - N = [n for j in range(len(u))] - time_iter = [end - start for i in range(len(u))] - res_i['n_iter'].extend(n_iter) - res_i['grid'].extend(N) - res_i['v'].extend(v) - res_i['u'].extend(u) - res_i['time'].extend(time_iter) - result.extend(res_i) - -df = pd.DataFrame(res_i) -df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file + print('Time taken {} = {}'.format(n, end - start)) + res_i.append(model(grid)) + result.append({'n': n, 'values': res_i, 'time': start - end}) +df = pd.DataFrame(result) +df.to_csv('benchmarking_data/example_schrodinger.csv') +# error_rmse = torch.sqrt(torch.mean(((grid)-model(grid))**2)) \ No newline at end of file diff --git a/examples/example_wave_periodic.py b/examples/example_wave_periodic.py index d81b5b06..5c7428fb 100644 --- a/examples/example_wave_periodic.py +++ b/examples/example_wave_periodic.py @@ -1,5 +1,7 @@ import torch import numpy as np +import matplotlib.pyplot as plt +import scipy import os @@ -11,11 +13,12 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from tedeous.solver import Solver -from tedeous.input_preprocessing import Equation +from solver import Solver +from cache import Model_prepare +from input_preprocessing import Equation import time -device = torch.device('cpu') +device = torch.device('mps') # Grid x_grid = np.linspace(0,1,21) t_grid = np.linspace(0,1,21) @@ -113,7 +116,7 @@ model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-2, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every=10,step_plot_print=False,step_plot_save=False,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every=500,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken 10= ', end - start) \ No newline at end of file From dd657745ae8ec5c64a8a8fdefcd37a01186b7bd3 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 19 Oct 2022 16:24:55 +0300 Subject: [PATCH 179/225] Upd Schrodinger. Added some stuff for paper. --- config.py | 177 ++++++++++++++++++++++++++++++++ examples/example_schrodinger.py | 34 +++--- 2 files changed, 198 insertions(+), 13 deletions(-) create mode 100644 config.py diff --git a/config.py b/config.py new file mode 100644 index 00000000..9c185cf8 --- /dev/null +++ b/config.py @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun Mar 13 14:13:37 2022 + +@author: Sashka +""" + +from email.policy import default +from typing import Union +import json + + +def read_config(name): + with open(name, 'r') as config_file: + config_data = json.load(config_file) + return config_data + + +DEFAULT_CONFIG = """ +{ +"Optimizer": { +"learning_rate":1e-4, +"lambda_bound":10, +"optimizer":"Adam" +}, +"Cache":{ +"use_cache":true, +"cache_dir":"../cache/", +"cache_verbose":false, +"save_always":false, +"model_randomize_parameter":0 +}, +"NN":{ +"batch_size":null, +"lp_par":null, +"grid_point_subset":["central"], +"h":0.001 +}, +"Verbose":{ + "verbose":true, + "print_every":null +}, +"StopCriterion":{ +"eps":1e-5, +"tmin":1000, +"tmax":1e5 , +"patience":5, +"loss_oscillation_window":100, +"no_improvement_patience":1000 +}, +"Matrix":{ +"lp_par":null, +"cache_model":null +} +} +""" + +default_config = json.loads(DEFAULT_CONFIG) + + +def check_module_name(module_name: str) -> bool: + """ + Check correctness of the 'first' level of config parameter name + we call it module. + + Parameters + ---------- + module_name: str + first level of a parameter of a custom config. + + Returns + ------- + module_correctness : bool + true if module presents in 'default' config. + + """ + if module_name in default_config.keys(): + return True + else: + return False + + +def check_param_name(module_name: str, param_name: str) -> bool: + """ + Check correctness of the 'first' level of config parameter name + we call it module. + + Parameters + ---------- + module_name: str + first level of a parameter of a custom config. + + Returns + ------- + module_correctness : bool + true if module presents in 'default' config. + + """ + if param_name in default_config[module_name].keys(): + return True + else: + return False + + +''' +We can use old json load. However, it is good to check if the parameters named correctly +So, we make the full 'default' version of the config and load 'non-default' parameters +either from file or using method 'change_parameter' +''' + + +class Config: + def __init__(self, *args): + """ + We init config with default one + + If there is passed path to a custom config, we try to load it and change + default parameters + + Parameters + ---------- + config_path: str, optional + path to a custom config + + Returns + ------- + self: Config + config used in solver.optimization_solver function + """ + + self.params = default_config + if len(args) == 1: + try: + custom_config = read_config(args[0]) + except Exception: + print('Error reading config. Default config assumed.') + custom_config = default_config + for module_name in custom_config.keys(): + if check_module_name(module_name): + for param in custom_config[module_name].keys(): + if check_param_name(module_name, param): + self.params[module_name][param] = custom_config[module_name][param] + else: + print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format( + module_name, param)) + else: + print( + 'Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) + + elif len(args) > 1: + print('Too much initialization args, using default config') + + def set_parameter(self, parameter_string: str, value: Union[bool,float, int, None]): + """ + We may want to just change default config parameters manually, without loading + the .json + + We run checks to see we set them corretly + + Parameters + ---------- + parameter_string: + string in format 'module.parameter' + + value + value for the parameter + """ + + module_name, param = parameter_string.split('.') + if check_module_name(module_name): + if check_param_name(module_name, param): + self.params[module_name][param] = value + else: + print( + 'Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name, param)) + else: + print('Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index b4459f92..89ed3c8a 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -18,11 +18,10 @@ from input_preprocessing import Equation result = [] -# for n in range(10,60,10): -for n in range(10,11): - res_i = [] # model(grid)[i] +device = torch.device('cpu') +res_i = {"n_iter": [], "grid": [], "u": [], "v": []} +for n in range(10,60,10): for i in range(10): - device = torch.device('mps') x_grid = np.linspace(-5,5,n+1) t_grid = np.linspace(0,np.pi/2,n+1) @@ -211,13 +210,22 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-3, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = 500,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=True, learning_rate=1e-3, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, + save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() - print('Time taken {} = {}'.format(n, end - start)) - res_i.append(model(grid)) - result.append({'n': n, 'values': res_i, 'time': start - end}) -df = pd.DataFrame(result) -df.to_csv('benchmarking_data/example_schrodinger.csv') -# error_rmse = torch.sqrt(torch.mean(((grid)-model(grid))**2)) \ No newline at end of file + print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) + + val = model(grid).detach().numpy() + u = val[0:,0] + v = val[0:,1] + n_iter = [i for j in range(len(u))] + N = [n for j in range(len(u))] + res_i['n_iter'].extend(n_iter) + res_i['grid'].extend(N) + res_i['v'].extend(v) + res_i['u'].extend(u) + result.extend(res_i) + +df = pd.DataFrame(res_i) +df.to_csv('benchmarking_data/schrodinger_experiment_10_50_cache=False.csv',index=False) \ No newline at end of file From b4f4e66e664c212a8879c2c917c21fbc6d32b2ef Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 31 Oct 2022 15:26:41 +0300 Subject: [PATCH 180/225] Some docstrings. Added docstrings and schrodinger example fixed for paper. --- examples/example_schrodinger.py | 9 +- solver.py | 367 ++++++++++++++++++++++++++++++++ 2 files changed, 373 insertions(+), 3 deletions(-) create mode 100644 solver.py diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 89ed3c8a..3cd3e65e 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -19,8 +19,9 @@ result = [] device = torch.device('cpu') -res_i = {"n_iter": [], "grid": [], "u": [], "v": []} -for n in range(10,60,10): +res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} +grd = [10, 20, 30, 40] +for n in grd: for i in range(10): x_grid = np.linspace(-5,5,n+1) @@ -221,11 +222,13 @@ v = val[0:,1] n_iter = [i for j in range(len(u))] N = [n for j in range(len(u))] + time_iter = [end - start for i in range(len(u))] res_i['n_iter'].extend(n_iter) res_i['grid'].extend(N) res_i['v'].extend(v) res_i['u'].extend(u) + res_i['time'].extend(time_iter) result.extend(res_i) df = pd.DataFrame(res_i) -df.to_csv('benchmarking_data/schrodinger_experiment_10_50_cache=False.csv',index=False) \ No newline at end of file +df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file diff --git a/solver.py b/solver.py new file mode 100644 index 00000000..c306873f --- /dev/null +++ b/solver.py @@ -0,0 +1,367 @@ +import torch +import numpy as np +import matplotlib.pyplot as plt +from matplotlib import cm + +import input_preprocessing +from cache import Model_prepare +from typing import Union +import os +import sys +import datetime + + +def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: str = 'NN') -> torch.Tensor: + """ + Prepares grid to a general form. Further, formatted grid can be processed + by Points_type.point_typization for 'NN' and 'autograd' methods. + + Parameters + ---------- + coord_list + list with coordinates. + mode + Calculation method. (i.e., "NN", "autograd", "mat") + + Returns + ------- + grid + grid in a general form + """ + if type(coord_list) == torch.Tensor: + print('Grid is a tensor, assuming old format, no action performed') + return coord_list + if mode == 'NN' or mode == 'autograd': + if len(coord_list) == 1: + coord_list = torch.tensor(coord_list) + grid = coord_list.reshape(-1, 1).float() + else: + coord_list_tensor = [] + for item in coord_list: + if isinstance(item, (np.ndarray)): + coord_list_tensor.append(torch.from_numpy(item)) + else: + coord_list_tensor.append(item) + grid = torch.cartesian_prod(*coord_list_tensor).float() + elif mode == 'mat': + grid = np.meshgrid(*coord_list) + grid = torch.tensor(np.array(grid)) + return grid + + +class Solver(Model_prepare): + """ + High-level interface for solving equations. + """ + def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, + input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], + model: torch.nn.Sequential, mode: str): + """ + High-level interface for solving equations. + + Parameters + ---------- + grid + array of a n-D points. + equal_cls + object from input_preprocessing (see input_preprocessing.Equation). + model + neural network. + mode + Calculation method. (i.e., "NN", "autograd", "mat"). + """ + super().__init__(grid, equal_cls, model, mode) + + def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ + Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: + """ + Parameters + ---------- + optimizer: + optimizer choice (Adam, SGD, LBFGS). + learning_rate: + determines the step size at each iteration while moving toward a minimum of a loss function. + + Returns + ------- + optimizer + torch.optimizer object as is. + + """ + if optimizer == 'Adam': + if self.mode == 'NN' or self.mode == 'autograd': + optimizer = torch.optim.Adam(self.model.parameters(), lr=learning_rate) + elif self.mode == 'mat': + optimizer = torch.optim.Adam([self.model.requires_grad_()], lr=learning_rate) + + elif optimizer == 'SGD': + if self.mode == 'NN' or self.mode == 'autograd': + optimizer = torch.optim.SGD(self.model.parameters(), lr=learning_rate) + elif self.mode == 'mat': + optimizer = torch.optim.SGD([self.model.requires_grad_()], lr=learning_rate) + + elif optimizer == 'LBFGS': + if self.mode == 'NN' or self.mode == 'autograd': + optimizer = torch.optim.LBFGS(self.model.parameters(), lr=learning_rate) + elif self.mode == 'mat': + optimizer = torch.optim.LBFGS([self.model.requires_grad_()], lr=learning_rate) + + else: + print('Wrong optimizer chosen, optimization was not performed') + return self.model + + return optimizer + + def solution_print(self, title: Union[str, None] = None, solution_print: bool = False, + solution_save: bool = True, save_dir: Union[str, None] = None): + """ + Visualizes the resulting solution. + + Parameters + ---------- + title + as is. + solution_print + draws a figure. + solution_save: + saves figure. + save_dir: + a directory where saved figure in. + """ + if save_dir == None: + img_dir = os.path.join(os.path.dirname(__file__), 'img') + if not (os.path.isdir(img_dir)): + os.mkdir(img_dir) + directory = os.path.abspath(os.path.join(img_dir, str(datetime.datetime.now().timestamp()) + '.png')) + else: + directory = os.path.join(save_dir, str(datetime.datetime.now().timestamp()) + '.png') + if self.mode == 'NN' or self.mode == 'autograd': + nvars_model = self.model(self.grid).shape[-1] + nparams = self.grid.shape[1] + fig = plt.figure() + for i in range(nvars_model): + if nparams == 1: + ax1 = fig.add_subplot(1, nvars_model, i + 1) + if title != None: + ax1.set_title(title + ' variable {}'.format(i)) + ax1.scatter(self.grid.detach().numpy().reshape(-1), + self.model(self.grid).detach().numpy().reshape(-1)) + else: + ax1 = fig.add_subplot(1, nvars_model, i + 1, projection='3d') + + if title != None: + ax1.set_title(title + ' variable {}'.format(i)) + + ax1.plot_trisurf(self.grid[:, 0].detach().numpy().reshape(-1), + self.grid[:, 1].detach().numpy().reshape(-1), + self.model(self.grid)[:, i].detach().numpy().reshape(-1), cmap=cm.jet, + linewidth=0.2, alpha=1) + ax1.set_xlabel("x1") + ax1.set_ylabel("x2") + if solution_print: + plt.show() + if solution_save: + plt.savefig(directory) + plt.close() + elif self.mode == 'mat': + nparams = self.grid.shape[0] + + if nparams == 1: + fig = plt.figure() + plt.scatter(self.grid.reshape(-1), self.model.detach().numpy().reshape(-1)) + if solution_print: + plt.show() + if solution_save: + plt.savefig(directory) + plt.close() + elif nparams == 2: + fig = plt.figure() + ax = fig.add_subplot(111, projection='3d') + if title != None: + ax.set_title(title) + ax.plot_trisurf(self.grid[0].reshape(-1), self.grid[1].reshape(-1), + self.model.reshape(-1).detach().numpy(), cmap=cm.jet, linewidth=0.2, alpha=1) + ax.set_xlabel("x1") + ax.set_ylabel("x2") + if solution_print: + plt.show() + if solution_save: + plt.savefig(directory) + plt.close() + + def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, learning_rate: float = 1e-4, + eps: float = 1e-5, tmin: int = 1000, tmax: float = 1e5, nmodels: Union[int, None] = None, + name: Union[str, None] = None, abs_loss: Union[None, float] = None, use_cache: bool = True, + cache_dir: str = '../cache/', cache_verbose: bool = False, save_always: bool = False, + print_every: Union[int, None] = 100, cache_model: Union[torch.nn.Sequential, None] = None, + patience: int = 5, loss_oscillation_window: int = 100, no_improvement_patience: int = 1000, + model_randomize_parameter: Union[int,float] = 0, optimizer_mode: str = 'Adam', + step_plot_print: Union[bool, int] = False, step_plot_save: Union[bool, int] = False, + image_save_dir: Union[str, None] = None) -> torch.nn.Sequential: + """ + High-level interface for solving equations. + + Parameters + ---------- + lambda_bound + an arbitrary chosen constant, influence only convergence speed. + verbose + more detailed info about training process. + learning_rate + determines the step size at each iteration while moving toward a minimum of a loss function. + eps + arbitrarily small number that uses for loss comparison criterion. + tmax + maximum execution time. + nmodels + ? + name + model name if saved. + abs_loss: Union[None, float] + absolute loss???. + use_cache + as is. + cache_dir + directory where saved cache in. + cache_verbose + more detailed info about models in cache. + save_always + ???? + print_every + prints the state of each given iteration to the command line. + cache_model + model that uses in cache + patience + if the loss is less than a certain value, then the counter increases, + when it reaches the given patience, the calculation stops. + loss_oscillation_window + + no_improvement_patience + + model_randomize_parameter + creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + optimizer_mode + optimizer choice (Adam, SGD, LBFGS). + step_plot_print + draws a figure through each given step. + step_plot_save + saves a figure through each given step. + image_save_dir + a directory where saved figure in. + + Returns + ------- + model + neural network. + + + """ + # prepare input data to uniform format + r = self.create_random_fn(model_randomize_parameter) + # use cache if needed + if use_cache: + self.model, min_loss = self.cache(cache_dir=cache_dir, + nmodels=nmodels, + lambda_bound=lambda_bound, + cache_verbose=cache_verbose, + model_randomize_parameter=model_randomize_parameter, + cache_model=cache_model) + + optimizer = self.optimizer_choice(optimizer_mode, learning_rate) + + if True: + # if not use_cache: + min_loss = self.loss_evaluation(lambda_bound=lambda_bound) + + save_cache = False + + if min_loss > 0.1 or save_always: # why 0.1? + save_cache = True + + # standard NN stuff + if verbose: + print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(), min_loss)) + + t = 0 + + last_loss = np.zeros(loss_oscillation_window) + float(min_loss) + line = np.polyfit(range(loss_oscillation_window), last_loss, 1) + + def closure(): + nonlocal cur_loss + optimizer.zero_grad() + loss = self.loss_evaluation(lambda_bound=lambda_bound) + + loss.backward() + cur_loss = loss.item() + return loss + + stop_dings = 0 + t_imp_start = 0 + # to stop train proceduce we fit the line in the loss data + # if line is flat enough 5 times, we stop the procedure + cur_loss = min_loss + while stop_dings <= patience: + optimizer.step(closure) + + last_loss[t % loss_oscillation_window] = cur_loss + + if cur_loss < min_loss: + min_loss = cur_loss + t_imp_start = t + + if verbose: + info_string = 'Step = {} loss = {:.6f} normalized loss line = {:.6f}x+{:.6f}. There was {} stop dings already.'.format( + t, cur_loss, line[0] / cur_loss, line[1] / cur_loss, stop_dings + 1) + + if t % loss_oscillation_window == 0: + line = np.polyfit(range(loss_oscillation_window), last_loss, 1) + if abs(line[0] / cur_loss) < eps and t > 0: + stop_dings += 1 + if self.mode == 'NN' or self.mode == 'autograd': + self.model.apply(r) + if verbose: + print('[{}] Oscillation near the same loss'.format(datetime.datetime.now())) + print(info_string) + if step_plot_print or step_plot_save: + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + + if (t - t_imp_start == no_improvement_patience): + if verbose: + print('[{}] No improvement in {} steps'.format(datetime.datetime.now(), no_improvement_patience)) + print(info_string) + if step_plot_print or step_plot_save: + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + t_imp_start = t + stop_dings += 1 + if self.mode == 'NN' or self.mode == 'autograd': + self.model.apply(r) + + if abs_loss != None and cur_loss < abs_loss: + if verbose: + print('[{}] Absolute value of loss is lower than threshold'.format(datetime.datetime.now())) + print(info_string) + if step_plot_print or step_plot_save: + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + stop_dings += 1 + + if print_every != None and (t % print_every == 0) and verbose: + print('[{}] Print every {} step'.format(datetime.datetime.now(), print_every)) + print(info_string) + if step_plot_print or step_plot_save: + self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, + solution_save=step_plot_save, save_dir=image_save_dir) + + t += 1 + if t > tmax: + break + if (save_cache and use_cache) or save_always: + if self.mode == 'mat': + self.save_model_mat(cache_dir=cache_dir, name=name) + else: + self.save_model(self.model, self.model.state_dict(), optimizer.state_dict(), cache_dir=cache_dir, + name=name) + return self.model From 9f2fad8e73ebe9a86d5e3bfec5b5ec8fe00864ad Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 10 Nov 2022 16:00:18 +0300 Subject: [PATCH 181/225] Some docs improvements --- config.py | 9 +++------ examples/example_schrodinger.py | 28 +++++++++++++++++----------- solver.py | 18 ++++++------------ 3 files changed, 26 insertions(+), 29 deletions(-) diff --git a/config.py b/config.py index 9c185cf8..a41e034d 100644 --- a/config.py +++ b/config.py @@ -117,13 +117,11 @@ def __init__(self, *args): If there is passed path to a custom config, we try to load it and change default parameters - Parameters - ---------- + Args: config_path: str, optional path to a custom config - Returns - ------- + Returns: self: Config config used in solver.optimization_solver function """ @@ -157,8 +155,7 @@ def set_parameter(self, parameter_string: str, value: Union[bool,float, int, Non We run checks to see we set them corretly - Parameters - ---------- + Args: parameter_string: string in format 'module.parameter' diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 3cd3e65e..dd7e472c 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -20,7 +20,7 @@ result = [] device = torch.device('cpu') res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10, 20, 30, 40] +grd = [10] for n in grd: for i in range(10): @@ -194,14 +194,20 @@ schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') @@ -211,9 +217,9 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=True, learning_rate=1e-3, + model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = None,step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=100,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) diff --git a/solver.py b/solver.py index c306873f..eacc22ca 100644 --- a/solver.py +++ b/solver.py @@ -59,8 +59,7 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa """ High-level interface for solving equations. - Parameters - ---------- + Args: grid array of a n-D points. equal_cls @@ -75,15 +74,13 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: """ - Parameters - ---------- + Args: optimizer: optimizer choice (Adam, SGD, LBFGS). learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. - Returns - ------- + Returns: optimizer torch.optimizer object as is. @@ -117,8 +114,7 @@ def solution_print(self, title: Union[str, None] = None, solution_print: bool = """ Visualizes the resulting solution. - Parameters - ---------- + Args: title as is. solution_print @@ -201,8 +197,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea """ High-level interface for solving equations. - Parameters - ---------- + Args: lambda_bound an arbitrary chosen constant, influence only convergence speed. verbose @@ -249,8 +244,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea image_save_dir a directory where saved figure in. - Returns - ------- + Returns: model neural network. From fb01cb03f496cea740a7433be1fa6f682cc64fe4 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 14 Nov 2022 00:23:55 +0300 Subject: [PATCH 182/225] Update example_schrodinger.py --- examples/example_schrodinger.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index dd7e472c..0e1de56b 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -20,7 +20,7 @@ result = [] device = torch.device('cpu') res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} -grd = [10] +grd = [10, 20, 30, 40, 50] for n in grd: for i in range(10): @@ -209,7 +209,7 @@ torch.nn.Linear(100, 2) ) - equation = Equation(grid, schrodinger_eq, bconds).set_strategy('NN') + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') img_dir=os.path.join(os.path.dirname( __file__ ), 'schrodinger_img') @@ -217,9 +217,9 @@ os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1, verbose=True, learning_rate=0.8, + model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=100,step_plot_save=True,image_save_dir=img_dir) + save_always=False,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) From 0dcf4451f22a153a933ac51e25d52b1b2b8e092b Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 16 Nov 2022 13:13:46 +0300 Subject: [PATCH 183/225] Some docs stuff --- docs/source/Modules/cache.rst | 6 ++++++ docs/source/Modules/config.rst | 6 ++++++ docs/source/Modules/finite_diffs.rst | 6 ++++++ docs/source/Modules/input_preprocessing.rst | 6 ++++++ docs/source/Modules/metrics.rst | 5 +++++ docs/source/Modules/points_type.rst | 5 +++++ docs/source/Modules/solver.rst | 5 +++++ 7 files changed, 39 insertions(+) create mode 100644 docs/source/Modules/cache.rst create mode 100644 docs/source/Modules/config.rst create mode 100644 docs/source/Modules/finite_diffs.rst create mode 100644 docs/source/Modules/input_preprocessing.rst create mode 100644 docs/source/Modules/metrics.rst create mode 100644 docs/source/Modules/points_type.rst create mode 100644 docs/source/Modules/solver.rst diff --git a/docs/source/Modules/cache.rst b/docs/source/Modules/cache.rst new file mode 100644 index 00000000..76e2214c --- /dev/null +++ b/docs/source/Modules/cache.rst @@ -0,0 +1,6 @@ +Cache +===== + +..automodule:: cache + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst new file mode 100644 index 00000000..fc1411ca --- /dev/null +++ b/docs/source/Modules/config.rst @@ -0,0 +1,6 @@ +Config +====== + +..automodule:: config + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/finite_diffs.rst b/docs/source/Modules/finite_diffs.rst new file mode 100644 index 00000000..6f8396f4 --- /dev/null +++ b/docs/source/Modules/finite_diffs.rst @@ -0,0 +1,6 @@ +Finite difference method +======================== + +..automodule:: finite_diffs + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/input_preprocessing.rst b/docs/source/Modules/input_preprocessing.rst new file mode 100644 index 00000000..a7ecef95 --- /dev/null +++ b/docs/source/Modules/input_preprocessing.rst @@ -0,0 +1,6 @@ +Input preprocessing +=================== + +..automodule:: input_preprocessing + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/metrics.rst b/docs/source/Modules/metrics.rst new file mode 100644 index 00000000..0dbe90d7 --- /dev/null +++ b/docs/source/Modules/metrics.rst @@ -0,0 +1,5 @@ +Metrics +======= +..automodule:: metrics + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/points_type.rst b/docs/source/Modules/points_type.rst new file mode 100644 index 00000000..c0b93269 --- /dev/null +++ b/docs/source/Modules/points_type.rst @@ -0,0 +1,5 @@ +Points type + +..automodule:: points_type + :members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/Modules/solver.rst b/docs/source/Modules/solver.rst new file mode 100644 index 00000000..d0293b85 --- /dev/null +++ b/docs/source/Modules/solver.rst @@ -0,0 +1,5 @@ +Solver + +..automodule:: solver + :members: + :no-undoc-members: \ No newline at end of file From 859f5fa6be138f4427bb840b7028a5fb07323ba6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 13:17:43 +0300 Subject: [PATCH 184/225] Update index.rst --- docs/source/modules/cache.rst | 2 +- docs/source/modules/config.rst | 2 +- docs/source/modules/finite_diffs.rst | 2 +- docs/source/modules/input_preprocessing.rst | 48 +-------------------- docs/source/modules/metrics.rst | 2 +- docs/source/modules/points_type.rst | 9 +--- docs/source/modules/solver.rst | 2 +- 7 files changed, 9 insertions(+), 58 deletions(-) diff --git a/docs/source/modules/cache.rst b/docs/source/modules/cache.rst index 364566da..76e2214c 100644 --- a/docs/source/modules/cache.rst +++ b/docs/source/modules/cache.rst @@ -1,6 +1,6 @@ Cache ===== -.. automodule:: cache +..automodule:: cache :members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst index 67898cf2..fc1411ca 100644 --- a/docs/source/modules/config.rst +++ b/docs/source/modules/config.rst @@ -1,6 +1,6 @@ Config ====== -.. automodule:: config +..automodule:: config :members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/finite_diffs.rst b/docs/source/modules/finite_diffs.rst index 07f6d2f2..6f8396f4 100644 --- a/docs/source/modules/finite_diffs.rst +++ b/docs/source/modules/finite_diffs.rst @@ -1,6 +1,6 @@ Finite difference method ======================== -.. automodule:: finite_diffs +..automodule:: finite_diffs :members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index 74c2cfb1..a7ecef95 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -1,50 +1,6 @@ -=================== Input preprocessing =================== -class Equation -~~~~~~~~~~~~~~ - -.. automodule:: input_preprocessing.Equation - :members: - :no-undoc-members: - - -class EquationMixin -~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: input_preprocessing.EquationMixin - :members: - :no-undoc-members: - - -class EquationInt -~~~~~~~~~~~~~~~~~ -.. automodule:: input_preprocessing.EquationInt - :members: - :no-undoc-members: - - -class Equation_NN -~~~~~~~~~~~~~~~~~ - -.. automodule:: input_preprocessing.Equation_NN +..automodule:: input_preprocessing :members: - :no-undoc-members: - - -class Equation_mat -~~~~~~~~~~~~~~~~~~ - -.. automodule:: input_preprocessing.Equation_mat - :members: - :no-undoc-members: - - -class Equation_autograd -~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: input_preprocessing.Equation_autograd - :members: - :no-undoc-members: - + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/metrics.rst b/docs/source/modules/metrics.rst index 1a9676b2..0dbe90d7 100644 --- a/docs/source/modules/metrics.rst +++ b/docs/source/modules/metrics.rst @@ -1,5 +1,5 @@ Metrics ======= -.. automodule:: metrics +..automodule:: metrics :members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index 2a85e07d..c0b93269 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -1,10 +1,5 @@ -=========== Points type -=========== -Points type -~~~~~~~~~~~ - -.. automodule:: points_type +..automodule:: points_type :members: - :no-undoc-members: + :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst index 020ff92b..d0293b85 100644 --- a/docs/source/modules/solver.rst +++ b/docs/source/modules/solver.rst @@ -1,5 +1,5 @@ Solver -.. automodule:: solver +..automodule:: solver :members: :no-undoc-members: \ No newline at end of file From 21fed29b2a94b7e2a3a400ebef1211a1e1297c57 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:47:10 +0300 Subject: [PATCH 185/225] Update config.rst --- docs/source/Modules/config.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst index fc1411ca..80dbfe7d 100644 --- a/docs/source/Modules/config.rst +++ b/docs/source/Modules/config.rst @@ -1,6 +1,6 @@ Config ====== -..automodule:: config +.. automodule:: config :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 6b7668aa254411882a3423633d19471898ff4eb6 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:06 +0300 Subject: [PATCH 186/225] Delete cache.rst --- docs/source/Modules/cache.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/cache.rst diff --git a/docs/source/Modules/cache.rst b/docs/source/Modules/cache.rst deleted file mode 100644 index 76e2214c..00000000 --- a/docs/source/Modules/cache.rst +++ /dev/null @@ -1,6 +0,0 @@ -Cache -===== - -..automodule:: cache - :members: - :no-undoc-members: \ No newline at end of file From b34d2a748a79f5a2352f4281154477ef0a112979 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:23 +0300 Subject: [PATCH 187/225] Delete config.rst --- docs/source/Modules/config.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/config.rst diff --git a/docs/source/Modules/config.rst b/docs/source/Modules/config.rst deleted file mode 100644 index 80dbfe7d..00000000 --- a/docs/source/Modules/config.rst +++ /dev/null @@ -1,6 +0,0 @@ -Config -====== - -.. automodule:: config - :members: - :no-undoc-members: From 18f3763d428ad8a006d6db58fdfc1b0e1999e8f4 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:31 +0300 Subject: [PATCH 188/225] Delete finite_diffs.rst --- docs/source/Modules/finite_diffs.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/finite_diffs.rst diff --git a/docs/source/Modules/finite_diffs.rst b/docs/source/Modules/finite_diffs.rst deleted file mode 100644 index 6f8396f4..00000000 --- a/docs/source/Modules/finite_diffs.rst +++ /dev/null @@ -1,6 +0,0 @@ -Finite difference method -======================== - -..automodule:: finite_diffs - :members: - :no-undoc-members: \ No newline at end of file From 2f4117d33629d7d70ecfd82b1b90e0523ef0be63 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:37 +0300 Subject: [PATCH 189/225] Delete input_preprocessing.rst --- docs/source/Modules/input_preprocessing.rst | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/source/Modules/input_preprocessing.rst diff --git a/docs/source/Modules/input_preprocessing.rst b/docs/source/Modules/input_preprocessing.rst deleted file mode 100644 index a7ecef95..00000000 --- a/docs/source/Modules/input_preprocessing.rst +++ /dev/null @@ -1,6 +0,0 @@ -Input preprocessing -=================== - -..automodule:: input_preprocessing - :members: - :no-undoc-members: \ No newline at end of file From 1ebc4da2da847cf2bc965b1c5e5918b0f6a00e9a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:43 +0300 Subject: [PATCH 190/225] Delete metrics.rst --- docs/source/Modules/metrics.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/metrics.rst diff --git a/docs/source/Modules/metrics.rst b/docs/source/Modules/metrics.rst deleted file mode 100644 index 0dbe90d7..00000000 --- a/docs/source/Modules/metrics.rst +++ /dev/null @@ -1,5 +0,0 @@ -Metrics -======= -..automodule:: metrics - :members: - :no-undoc-members: \ No newline at end of file From 1024c9487e1aac535c8d499bdde762868b135fc7 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:49 +0300 Subject: [PATCH 191/225] Delete points_type.rst --- docs/source/Modules/points_type.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/points_type.rst diff --git a/docs/source/Modules/points_type.rst b/docs/source/Modules/points_type.rst deleted file mode 100644 index c0b93269..00000000 --- a/docs/source/Modules/points_type.rst +++ /dev/null @@ -1,5 +0,0 @@ -Points type - -..automodule:: points_type - :members: - :no-undoc-members: \ No newline at end of file From f4b17fe9114aea905bfcb3b0704fbd02dcb7cced Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:49:55 +0300 Subject: [PATCH 192/225] Delete solver.rst --- docs/source/Modules/solver.rst | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/source/Modules/solver.rst diff --git a/docs/source/Modules/solver.rst b/docs/source/Modules/solver.rst deleted file mode 100644 index d0293b85..00000000 --- a/docs/source/Modules/solver.rst +++ /dev/null @@ -1,5 +0,0 @@ -Solver - -..automodule:: solver - :members: - :no-undoc-members: \ No newline at end of file From b0a5375546822f4f6a82755b9c7477b8751af1ec Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:27:47 +0300 Subject: [PATCH 193/225] Update points_type.rst --- docs/source/modules/points_type.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index c0b93269..0caa22b8 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -1,5 +1,10 @@ +=========== Points type +=========== + +Points type +~~~~~~~~~~~ ..automodule:: points_type :members: - :no-undoc-members: \ No newline at end of file + :no-undoc-members: From 664d81a2758ff329f1da0ce21d14829928cf3e8d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 18 Nov 2022 00:07:17 +0300 Subject: [PATCH 194/225] Docs fix --- config.py | 64 ++++++++++++++++--------------------------------------- 1 file changed, 18 insertions(+), 46 deletions(-) diff --git a/config.py b/config.py index a41e034d..d819daf7 100644 --- a/config.py +++ b/config.py @@ -1,12 +1,5 @@ -# -*- coding: utf-8 -*- -""" -Created on Sun Mar 13 14:13:37 2022 - -@author: Sashka -""" - from email.policy import default -from typing import Union +from typing import Union, Optional import json @@ -15,7 +8,6 @@ def read_config(name): config_data = json.load(config_file) return config_data - DEFAULT_CONFIG = """ { "Optimizer": { @@ -63,16 +55,11 @@ def check_module_name(module_name: str) -> bool: Check correctness of the 'first' level of config parameter name we call it module. - Parameters - ---------- - module_name: str - first level of a parameter of a custom config. - - Returns - ------- - module_correctness : bool - true if module presents in 'default' config. + Args: + module_name: first level of a parameter of a custom config. + Returns: + module_correctness: if module presents in 'default' config. """ if module_name in default_config.keys(): return True @@ -85,45 +72,32 @@ def check_param_name(module_name: str, param_name: str) -> bool: Check correctness of the 'first' level of config parameter name we call it module. - Parameters - ---------- - module_name: str - first level of a parameter of a custom config. - - Returns - ------- - module_correctness : bool - true if module presents in 'default' config. + Args: + module_name: first level of a parameter of a custom config. + param_name: specific parameter name. + Returns: + module_correctness: true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): return True else: return False - -''' -We can use old json load. However, it is good to check if the parameters named correctly -So, we make the full 'default' version of the config and load 'non-default' parameters -either from file or using method 'change_parameter' -''' - - class Config: - def __init__(self, *args): + def __init__(self: Union[str, Optional], *args): """ - We init config with default one + We initialize config with default one If there is passed path to a custom config, we try to load it and change default parameters Args: - config_path: str, optional - path to a custom config + config_path: path to a custom config Returns: - self: Config - config used in solver.optimization_solver function + self: config used in solver.optimization_solver function + """ self.params = default_config @@ -153,14 +127,12 @@ def set_parameter(self, parameter_string: str, value: Union[bool,float, int, Non We may want to just change default config parameters manually, without loading the .json - We run checks to see we set them corretly + We run checks to see we set them correctly Args: - parameter_string: - string in format 'module.parameter' + parameter_string: string in format 'module.parameter'. + value: value for the parameter. - value - value for the parameter """ module_name, param = parameter_string.split('.') From ceb31ada2b28c3736ef2840b12849ea115900205 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 18 Nov 2022 15:11:48 +0300 Subject: [PATCH 195/225] Update project structure --- config.py | 146 ------------ examples/example_schrodinger.py | 7 +- examples/example_wave_periodic.py | 11 +- solver.py | 361 ------------------------------ 4 files changed, 6 insertions(+), 519 deletions(-) delete mode 100644 config.py delete mode 100644 solver.py diff --git a/config.py b/config.py deleted file mode 100644 index d819daf7..00000000 --- a/config.py +++ /dev/null @@ -1,146 +0,0 @@ -from email.policy import default -from typing import Union, Optional -import json - - -def read_config(name): - with open(name, 'r') as config_file: - config_data = json.load(config_file) - return config_data - -DEFAULT_CONFIG = """ -{ -"Optimizer": { -"learning_rate":1e-4, -"lambda_bound":10, -"optimizer":"Adam" -}, -"Cache":{ -"use_cache":true, -"cache_dir":"../cache/", -"cache_verbose":false, -"save_always":false, -"model_randomize_parameter":0 -}, -"NN":{ -"batch_size":null, -"lp_par":null, -"grid_point_subset":["central"], -"h":0.001 -}, -"Verbose":{ - "verbose":true, - "print_every":null -}, -"StopCriterion":{ -"eps":1e-5, -"tmin":1000, -"tmax":1e5 , -"patience":5, -"loss_oscillation_window":100, -"no_improvement_patience":1000 -}, -"Matrix":{ -"lp_par":null, -"cache_model":null -} -} -""" - -default_config = json.loads(DEFAULT_CONFIG) - - -def check_module_name(module_name: str) -> bool: - """ - Check correctness of the 'first' level of config parameter name - we call it module. - - Args: - module_name: first level of a parameter of a custom config. - - Returns: - module_correctness: if module presents in 'default' config. - """ - if module_name in default_config.keys(): - return True - else: - return False - - -def check_param_name(module_name: str, param_name: str) -> bool: - """ - Check correctness of the 'first' level of config parameter name - we call it module. - - Args: - module_name: first level of a parameter of a custom config. - param_name: specific parameter name. - - Returns: - module_correctness: true if module presents in 'default' config. - """ - if param_name in default_config[module_name].keys(): - return True - else: - return False - -class Config: - def __init__(self: Union[str, Optional], *args): - """ - We initialize config with default one - - If there is passed path to a custom config, we try to load it and change - default parameters - - Args: - config_path: path to a custom config - - Returns: - self: config used in solver.optimization_solver function - - """ - - self.params = default_config - if len(args) == 1: - try: - custom_config = read_config(args[0]) - except Exception: - print('Error reading config. Default config assumed.') - custom_config = default_config - for module_name in custom_config.keys(): - if check_module_name(module_name): - for param in custom_config[module_name].keys(): - if check_param_name(module_name, param): - self.params[module_name][param] = custom_config[module_name][param] - else: - print('Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format( - module_name, param)) - else: - print( - 'Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) - - elif len(args) > 1: - print('Too much initialization args, using default config') - - def set_parameter(self, parameter_string: str, value: Union[bool,float, int, None]): - """ - We may want to just change default config parameters manually, without loading - the .json - - We run checks to see we set them correctly - - Args: - parameter_string: string in format 'module.parameter'. - value: value for the parameter. - - """ - - module_name, param = parameter_string.split('.') - if check_module_name(module_name): - if check_param_name(module_name, param): - self.params[module_name][param] = value - else: - print( - 'Wrong parameter name: ok.wrong for {}.{}. Defalut parameters assumed.'.format(module_name, param)) - else: - print('Wrong module name: wrong.maybeok for {}.smth. Defalut parameters assumed.'.format(module_name)) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 0e1de56b..6a5c3e26 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -1,7 +1,5 @@ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import pandas as pd import os @@ -13,9 +11,8 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation result = [] device = torch.device('cpu') diff --git a/examples/example_wave_periodic.py b/examples/example_wave_periodic.py index 5c7428fb..d81b5b06 100644 --- a/examples/example_wave_periodic.py +++ b/examples/example_wave_periodic.py @@ -1,7 +1,5 @@ import torch import numpy as np -import matplotlib.pyplot as plt -import scipy import os @@ -13,12 +11,11 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.input_preprocessing import Equation import time -device = torch.device('mps') +device = torch.device('cpu') # Grid x_grid = np.linspace(0,1,21) t_grid = np.linspace(0,1,21) @@ -116,7 +113,7 @@ model = Solver(grid, equation, model, 'NN').solve(lambda_bound=1000, verbose=1, learning_rate=1e-2, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=True,no_improvement_patience=500,print_every=500,step_plot_print=500,step_plot_save=True,image_save_dir=img_dir) + save_always=True,no_improvement_patience=500,print_every=10,step_plot_print=False,step_plot_save=False,image_save_dir=img_dir) end = time.time() print('Time taken 10= ', end - start) \ No newline at end of file diff --git a/solver.py b/solver.py deleted file mode 100644 index eacc22ca..00000000 --- a/solver.py +++ /dev/null @@ -1,361 +0,0 @@ -import torch -import numpy as np -import matplotlib.pyplot as plt -from matplotlib import cm - -import input_preprocessing -from cache import Model_prepare -from typing import Union -import os -import sys -import datetime - - -def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: str = 'NN') -> torch.Tensor: - """ - Prepares grid to a general form. Further, formatted grid can be processed - by Points_type.point_typization for 'NN' and 'autograd' methods. - - Parameters - ---------- - coord_list - list with coordinates. - mode - Calculation method. (i.e., "NN", "autograd", "mat") - - Returns - ------- - grid - grid in a general form - """ - if type(coord_list) == torch.Tensor: - print('Grid is a tensor, assuming old format, no action performed') - return coord_list - if mode == 'NN' or mode == 'autograd': - if len(coord_list) == 1: - coord_list = torch.tensor(coord_list) - grid = coord_list.reshape(-1, 1).float() - else: - coord_list_tensor = [] - for item in coord_list: - if isinstance(item, (np.ndarray)): - coord_list_tensor.append(torch.from_numpy(item)) - else: - coord_list_tensor.append(item) - grid = torch.cartesian_prod(*coord_list_tensor).float() - elif mode == 'mat': - grid = np.meshgrid(*coord_list) - grid = torch.tensor(np.array(grid)) - return grid - - -class Solver(Model_prepare): - """ - High-level interface for solving equations. - """ - def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, - input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], - model: torch.nn.Sequential, mode: str): - """ - High-level interface for solving equations. - - Args: - grid - array of a n-D points. - equal_cls - object from input_preprocessing (see input_preprocessing.Equation). - model - neural network. - mode - Calculation method. (i.e., "NN", "autograd", "mat"). - """ - super().__init__(grid, equal_cls, model, mode) - - def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ - Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: - """ - Args: - optimizer: - optimizer choice (Adam, SGD, LBFGS). - learning_rate: - determines the step size at each iteration while moving toward a minimum of a loss function. - - Returns: - optimizer - torch.optimizer object as is. - - """ - if optimizer == 'Adam': - if self.mode == 'NN' or self.mode == 'autograd': - optimizer = torch.optim.Adam(self.model.parameters(), lr=learning_rate) - elif self.mode == 'mat': - optimizer = torch.optim.Adam([self.model.requires_grad_()], lr=learning_rate) - - elif optimizer == 'SGD': - if self.mode == 'NN' or self.mode == 'autograd': - optimizer = torch.optim.SGD(self.model.parameters(), lr=learning_rate) - elif self.mode == 'mat': - optimizer = torch.optim.SGD([self.model.requires_grad_()], lr=learning_rate) - - elif optimizer == 'LBFGS': - if self.mode == 'NN' or self.mode == 'autograd': - optimizer = torch.optim.LBFGS(self.model.parameters(), lr=learning_rate) - elif self.mode == 'mat': - optimizer = torch.optim.LBFGS([self.model.requires_grad_()], lr=learning_rate) - - else: - print('Wrong optimizer chosen, optimization was not performed') - return self.model - - return optimizer - - def solution_print(self, title: Union[str, None] = None, solution_print: bool = False, - solution_save: bool = True, save_dir: Union[str, None] = None): - """ - Visualizes the resulting solution. - - Args: - title - as is. - solution_print - draws a figure. - solution_save: - saves figure. - save_dir: - a directory where saved figure in. - """ - if save_dir == None: - img_dir = os.path.join(os.path.dirname(__file__), 'img') - if not (os.path.isdir(img_dir)): - os.mkdir(img_dir) - directory = os.path.abspath(os.path.join(img_dir, str(datetime.datetime.now().timestamp()) + '.png')) - else: - directory = os.path.join(save_dir, str(datetime.datetime.now().timestamp()) + '.png') - if self.mode == 'NN' or self.mode == 'autograd': - nvars_model = self.model(self.grid).shape[-1] - nparams = self.grid.shape[1] - fig = plt.figure() - for i in range(nvars_model): - if nparams == 1: - ax1 = fig.add_subplot(1, nvars_model, i + 1) - if title != None: - ax1.set_title(title + ' variable {}'.format(i)) - ax1.scatter(self.grid.detach().numpy().reshape(-1), - self.model(self.grid).detach().numpy().reshape(-1)) - else: - ax1 = fig.add_subplot(1, nvars_model, i + 1, projection='3d') - - if title != None: - ax1.set_title(title + ' variable {}'.format(i)) - - ax1.plot_trisurf(self.grid[:, 0].detach().numpy().reshape(-1), - self.grid[:, 1].detach().numpy().reshape(-1), - self.model(self.grid)[:, i].detach().numpy().reshape(-1), cmap=cm.jet, - linewidth=0.2, alpha=1) - ax1.set_xlabel("x1") - ax1.set_ylabel("x2") - if solution_print: - plt.show() - if solution_save: - plt.savefig(directory) - plt.close() - elif self.mode == 'mat': - nparams = self.grid.shape[0] - - if nparams == 1: - fig = plt.figure() - plt.scatter(self.grid.reshape(-1), self.model.detach().numpy().reshape(-1)) - if solution_print: - plt.show() - if solution_save: - plt.savefig(directory) - plt.close() - elif nparams == 2: - fig = plt.figure() - ax = fig.add_subplot(111, projection='3d') - if title != None: - ax.set_title(title) - ax.plot_trisurf(self.grid[0].reshape(-1), self.grid[1].reshape(-1), - self.model.reshape(-1).detach().numpy(), cmap=cm.jet, linewidth=0.2, alpha=1) - ax.set_xlabel("x1") - ax.set_ylabel("x2") - if solution_print: - plt.show() - if solution_save: - plt.savefig(directory) - plt.close() - - def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, learning_rate: float = 1e-4, - eps: float = 1e-5, tmin: int = 1000, tmax: float = 1e5, nmodels: Union[int, None] = None, - name: Union[str, None] = None, abs_loss: Union[None, float] = None, use_cache: bool = True, - cache_dir: str = '../cache/', cache_verbose: bool = False, save_always: bool = False, - print_every: Union[int, None] = 100, cache_model: Union[torch.nn.Sequential, None] = None, - patience: int = 5, loss_oscillation_window: int = 100, no_improvement_patience: int = 1000, - model_randomize_parameter: Union[int,float] = 0, optimizer_mode: str = 'Adam', - step_plot_print: Union[bool, int] = False, step_plot_save: Union[bool, int] = False, - image_save_dir: Union[str, None] = None) -> torch.nn.Sequential: - """ - High-level interface for solving equations. - - Args: - lambda_bound - an arbitrary chosen constant, influence only convergence speed. - verbose - more detailed info about training process. - learning_rate - determines the step size at each iteration while moving toward a minimum of a loss function. - eps - arbitrarily small number that uses for loss comparison criterion. - tmax - maximum execution time. - nmodels - ? - name - model name if saved. - abs_loss: Union[None, float] - absolute loss???. - use_cache - as is. - cache_dir - directory where saved cache in. - cache_verbose - more detailed info about models in cache. - save_always - ???? - print_every - prints the state of each given iteration to the command line. - cache_model - model that uses in cache - patience - if the loss is less than a certain value, then the counter increases, - when it reaches the given patience, the calculation stops. - loss_oscillation_window - - no_improvement_patience - - model_randomize_parameter - creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - optimizer_mode - optimizer choice (Adam, SGD, LBFGS). - step_plot_print - draws a figure through each given step. - step_plot_save - saves a figure through each given step. - image_save_dir - a directory where saved figure in. - - Returns: - model - neural network. - - - """ - # prepare input data to uniform format - r = self.create_random_fn(model_randomize_parameter) - # use cache if needed - if use_cache: - self.model, min_loss = self.cache(cache_dir=cache_dir, - nmodels=nmodels, - lambda_bound=lambda_bound, - cache_verbose=cache_verbose, - model_randomize_parameter=model_randomize_parameter, - cache_model=cache_model) - - optimizer = self.optimizer_choice(optimizer_mode, learning_rate) - - if True: - # if not use_cache: - min_loss = self.loss_evaluation(lambda_bound=lambda_bound) - - save_cache = False - - if min_loss > 0.1 or save_always: # why 0.1? - save_cache = True - - # standard NN stuff - if verbose: - print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(), min_loss)) - - t = 0 - - last_loss = np.zeros(loss_oscillation_window) + float(min_loss) - line = np.polyfit(range(loss_oscillation_window), last_loss, 1) - - def closure(): - nonlocal cur_loss - optimizer.zero_grad() - loss = self.loss_evaluation(lambda_bound=lambda_bound) - - loss.backward() - cur_loss = loss.item() - return loss - - stop_dings = 0 - t_imp_start = 0 - # to stop train proceduce we fit the line in the loss data - # if line is flat enough 5 times, we stop the procedure - cur_loss = min_loss - while stop_dings <= patience: - optimizer.step(closure) - - last_loss[t % loss_oscillation_window] = cur_loss - - if cur_loss < min_loss: - min_loss = cur_loss - t_imp_start = t - - if verbose: - info_string = 'Step = {} loss = {:.6f} normalized loss line = {:.6f}x+{:.6f}. There was {} stop dings already.'.format( - t, cur_loss, line[0] / cur_loss, line[1] / cur_loss, stop_dings + 1) - - if t % loss_oscillation_window == 0: - line = np.polyfit(range(loss_oscillation_window), last_loss, 1) - if abs(line[0] / cur_loss) < eps and t > 0: - stop_dings += 1 - if self.mode == 'NN' or self.mode == 'autograd': - self.model.apply(r) - if verbose: - print('[{}] Oscillation near the same loss'.format(datetime.datetime.now())) - print(info_string) - if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, - solution_save=step_plot_save, save_dir=image_save_dir) - - if (t - t_imp_start == no_improvement_patience): - if verbose: - print('[{}] No improvement in {} steps'.format(datetime.datetime.now(), no_improvement_patience)) - print(info_string) - if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, - solution_save=step_plot_save, save_dir=image_save_dir) - t_imp_start = t - stop_dings += 1 - if self.mode == 'NN' or self.mode == 'autograd': - self.model.apply(r) - - if abs_loss != None and cur_loss < abs_loss: - if verbose: - print('[{}] Absolute value of loss is lower than threshold'.format(datetime.datetime.now())) - print(info_string) - if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, - solution_save=step_plot_save, save_dir=image_save_dir) - stop_dings += 1 - - if print_every != None and (t % print_every == 0) and verbose: - print('[{}] Print every {} step'.format(datetime.datetime.now(), print_every)) - print(info_string) - if step_plot_print or step_plot_save: - self.solution_print(title='Iteration = ' + str(t), solution_print=step_plot_print, - solution_save=step_plot_save, save_dir=image_save_dir) - - t += 1 - if t > tmax: - break - if (save_cache and use_cache) or save_always: - if self.mode == 'mat': - self.save_model_mat(cache_dir=cache_dir, name=name) - else: - self.save_model(self.model, self.model.state_dict(), optimizer.state_dict(), cache_dir=cache_dir, - name=name) - return self.model From a67437af41df477a3a40fd43e93f64a5d4d2d6b2 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 18 Nov 2022 15:43:02 +0300 Subject: [PATCH 196/225] Update Makefile --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index d0c3cbf1..985a9a25 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -4,7 +4,7 @@ # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build +SPHINXBUILD = python3 -msphinx SOURCEDIR = source BUILDDIR = build From f60612856ce0a9f2faef4f02b0988caf53655033 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 18 Nov 2022 16:02:46 +0300 Subject: [PATCH 197/225] Update Makefile --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 985a9a25..d0c3cbf1 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -4,7 +4,7 @@ # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= -SPHINXBUILD = python3 -msphinx +SPHINXBUILD ?= sphinx-build SOURCEDIR = source BUILDDIR = build From bdaa014db37b893ca315191283ba2c4dac237be1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 2 Dec 2022 16:06:39 +0300 Subject: [PATCH 198/225] Paper stuff --- examples/example_schrodinger.py | 6 +- examples/example_weak_Schrodinger.py | 415 +++++++++++++------------ tedeous/cache.py | 9 +- tedeous/solver.py | 10 +- test.ipynb | 434 +++++++++++++++++---------- 5 files changed, 503 insertions(+), 371 deletions(-) diff --git a/examples/example_schrodinger.py b/examples/example_schrodinger.py index 6a5c3e26..388f9d12 100644 --- a/examples/example_schrodinger.py +++ b/examples/example_schrodinger.py @@ -215,8 +215,8 @@ start = time.time() model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=500,print_every = 100,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) + eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, + save_always=False,no_improvement_patience=500,print_every = None,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) end = time.time() print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) @@ -234,4 +234,4 @@ result.extend(res_i) df = pd.DataFrame(res_i) -df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file +df.to_csv(f'benchmarking_data/schrodinger_experiment_{grd}_cache=True.csv',index=False) \ No newline at end of file diff --git a/examples/example_weak_Schrodinger.py b/examples/example_weak_Schrodinger.py index ed3b0685..c9dbeeed 100644 --- a/examples/example_weak_Schrodinger.py +++ b/examples/example_weak_Schrodinger.py @@ -2,7 +2,9 @@ import numpy as np import matplotlib.pyplot as plt import scipy +import pandas as pd +import time import os import sys @@ -11,211 +13,234 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from solver import Solver -from cache import Model_prepare -from input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.cache import Model_prepare +from tedeous.input_preprocessing import Equation +result = [] device = torch.device('cpu') +res_i = {"n_iter": [], "grid": [], "u": [], "v": [], 'time': []} +grd = [50] +for n in grd: + for i in range(10): + + x_grid = np.linspace(-5,5,n+1) + t_grid = np.linspace(0,np.pi/2,n+1) + + x = torch.from_numpy(x_grid) + t = torch.from_numpy(t_grid) + + grid = torch.cartesian_prod(x, t).float() + + grid.to(device) + + """ + To solve schrodinger equation we have to solve system because of its complexity. + Both for the operator and for boundary and initial conditions. + The system of boundary and initial conditions is written as follows: + bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) + etc... + For periodic bconds you need to set parameter bnd_type = 'periodic'. + For 'periodic' you don't need to set bnd_val. + In this case condition will be written as follows: + bnd1_left = ... + bnd1_right = ... + bnd1 = [bnd1_left, bnd1_right] + Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. + bnd_type is not necessary, default = 'boundary values'. + bnd, bnd_val are essentials for setting parameters bconds. + Eventually, whole list of bconds will be written: + bconds = [[bnd1,...,...], etc...] + """ + ## BOUNDARY AND INITIAL CONDITIONS + fun = lambda x: 2/np.cosh(x) + + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + + + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) + + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + + + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] + + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + + + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] + + bop3_real = { + 'du/dx': + { + 'coeff': 1, + 'du/dx': [0], + 'pow': 1, + 'var': 0 + } + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + + bop3_imag = { + 'dv/dx': + { + 'coeff': 1, + 'dv/dx': [0], + 'pow': 1, + 'var': 1 + } + } -x_grid = np.linspace(-5,5,41) -t_grid = np.linspace(0,np.pi/2,41) - -x = torch.from_numpy(x_grid) -t = torch.from_numpy(t_grid) - -grid = torch.cartesian_prod(x, t).float() - -grid.to(device) - -""" -To solve schrodinger equation we have to solve system because of its complexity. -Both for the operator and for boundary and initial conditions. -The system of boundary and initial conditions is written as follows: -bnd1 = torch.stack((bnd1_real, bnd1_imag),dim = 1) -etc... -For periodic bconds you need to set parameter bnd_type = 'periodic'. -For 'periodic' you don't need to set bnd_val. -In this case condition will be written as follows: -bnd1_left = ... -bnd1_right = ... -bnd1 = [bnd1_left, bnd1_right] -Each term of bconds support up to 4 parameters, such as: bnd, bnd_val, bnd_op, bnd_type. -bnd_type is not necessary, default = 'boundary values'. -bnd, bnd_val are essentials for setting parameters bconds. -Eventually, whole list of bconds will be written: -bconds = [[bnd1,...,...], etc...] -""" -## BOUNDARY AND INITIAL CONDITIONS -fun = lambda x: 2/np.cosh(x) - -# u(x,0) = 2sech(x), v(x,0) = 0 -bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() -bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - - -# u(x,0) = 2sech(x) -bndval1_real = fun(bnd1_real[:,0]) - -# v(x,0) = 0 -bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) - - -# u(-5,t) = u(5,t) -bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_real = [bnd2_real_left,bnd2_real_right] - -# v(-5,t) = v(5,t) -bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd2_imag = [bnd2_imag_left,bnd2_imag_right] - - -# du/dx (-5,t) = du/dx (5,t) -bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_real = [bnd3_real_left, bnd3_real_right] -bop3_real = { - 'du/dx': + bcond_type = 'periodic' + + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] + + ''' + schrodinger equation: + i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 + real part: + du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v + imag part: + dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u + u = var:0 + v = var:1 + ''' + + schrodinger_eq_real = { + 'du/dt': { - 'coeff': 1, - 'du/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [1], + 'power': 1, 'var': 0 - } -} -# dv/dx (-5,t) = dv/dx (5,t) -bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() -bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() -bnd3_imag = [bnd3_imag_left,bnd3_imag_right] - -bop3_imag = { - 'dv/dx': + }, + '1/2*d2v/dx2': + { + 'const': 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 1 + }, + 'v * u**2': { - 'coeff': 1, - 'dv/dx': [0], - 'pow': 1, + 'const': 1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [1, 0] + }, + 'v**3': + { + 'const': 1, + 'term': [None], + 'power': 3, 'var': 1 } -} - - -bcond_type = 'periodic' - -bconds = [[bnd1_real, bndval1_real, 0], - [bnd1_imag, bndval1_imag, 1], - [bnd2_real, 0, bcond_type], - [bnd2_imag, 1, bcond_type], - [bnd3_real, bop3_real, bcond_type], - [bnd3_imag, bop3_imag, bcond_type]] - -''' -schrodinger equation: -i * dh/dt + 1/2 * d2h/dx2 + abs(h)**2 * h = 0 -real part: -du/dt + 1/2 * d2v/dx2 + (u**2 + v**2) * v -imag part: -dv/dt - 1/2 * d2u/dx2 - (u**2 + v**2) * u -u = var:0 -v = var:1 -''' - -schrodinger_eq_real = { - 'du/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 0 - }, - '1/2*d2v/dx2': - { - 'const': 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 1 - }, - 'v * u**2': - { - 'const': 1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [1, 0] - }, - 'v**3': - { - 'const': 1, - 'term': [None], - 'power': 3, - 'var': 1 - } -} -schrodinger_eq_imag = { - 'dv/dt': - { - 'const': 1, - 'term': [1], - 'power': 1, - 'var': 1 - }, - '-1/2*d2u/dx2': - { - 'const': - 1 / 2, - 'term': [0, 0], - 'power': 1, - 'var': 0 - }, - '-u * v ** 2': - { - 'const': -1, - 'term': [[None], [None]], - 'power': [1, 2], - 'var': [0, 1] - }, - '-u ** 3': - { - 'const': -1, - 'term': [None], - 'power': 3, - 'var': 0 } + schrodinger_eq_imag = { + 'dv/dt': + { + 'const': 1, + 'term': [1], + 'power': 1, + 'var': 1 + }, + '-1/2*d2u/dx2': + { + 'const': - 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 0 + }, + '-u * v ** 2': + { + 'const': -1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [0, 1] + }, + '-u ** 3': + { + 'const': -1, + 'term': [None], + 'power': 3, + 'var': 0 + } -} - -schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] - -model = torch.nn.Sequential( - torch.nn.Linear(2, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - torch.nn.Linear(100, 100), - torch.nn.Tanh(), - #torch.nn.Linear(100, 100), for more accurate - #torch.nn.Tanh(), - torch.nn.Linear(100, 2) - ) - -def v(grid): - return torch.cos(grid[:,0] + grid[:,1]) # torch.ones_like(grid[:,0]) + torch.cos(grid[:,0] + grid[:,1]) # for more accurate in more time - -weak_form=[v] - -equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') - -img_dir=os.path.join(os.path.dirname( __file__ ), 'schroedinger_weak_img') - -if not(os.path.isdir(img_dir)): - os.mkdir(img_dir) + } -model = Solver(grid, equation, model, 'autograd', weak_form=weak_form).solve(lambda_bound=1, verbose=1, learning_rate=0.9, - eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=10,loss_oscillation_window=10, print_every=10, optimizer_mode='LBFGS',step_plot_print=False, step_plot_save=True, image_save_dir=img_dir) \ No newline at end of file + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + + model = torch.nn.Sequential( + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + #torch.nn.Linear(100, 100), for more accurate + #torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) + + def v(grid): + return torch.cos(grid[:,0] + grid[:,1]) # torch.ones_like(grid[:,0]) + torch.cos(grid[:,0] + grid[:,1]) # for more accurate in more time + + weak_form=[v] + + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') + + img_dir=os.path.join(os.path.dirname( __file__ ), 'schroedinger_weak_img') + + if not(os.path.isdir(img_dir)): + os.mkdir(img_dir) + start = time.time() + model = Solver(grid, equation, model, 'autograd', weak_form=weak_form).solve(lambda_bound=1, verbose=1, learning_rate=0.09, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, + save_always=False,no_improvement_patience=10,loss_oscillation_window=10, print_every=10, optimizer_mode='LBFGS',step_plot_print=False, step_plot_save=False, image_save_dir=img_dir) + end = time.time() + print('Time taken for n_iter: {} and grid_res:{} = {}'.format(i, n, end - start)) + + val = model(grid).detach().numpy() + u = val[0:,0] + v = val[0:,1] + n_iter = [i for j in range(len(u))] + N = [n for j in range(len(u))] + time_iter = [end - start for i in range(len(u))] + res_i['n_iter'].extend(n_iter) + res_i['grid'].extend(N) + res_i['v'].extend(v) + res_i['u'].extend(u) + res_i['time'].extend(time_iter) + result.extend(res_i) + +df = pd.DataFrame(res_i) +df.to_csv(f'benchmarking_data/schrodinger_weak_experiment_{grd}_cache=False.csv',index=False) \ No newline at end of file diff --git a/tedeous/cache.py b/tedeous/cache.py index b961582e..7a278352 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -40,7 +40,7 @@ def randomize_params(m): return randomize_params - def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/', + def cache_lookup(self, lambda_bound: float = 0.001, weak_form: None = None, cache_dir: str = '../cache/', nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: ''' Looking for a saved cache. @@ -109,7 +109,7 @@ def cache_lookup(self, lambda_bound: float = 0.001, cache_dir: str = '../cache/' continue # model[0] = torch.nn.Linear(prepared_grid.shape[-1], model[0].out_features) # model.eval() - l=self.loss_evaluation(lambda_bound=lambda_bound) + l=self.loss_evaluation(lambda_bound=lambda_bound, weak_form = weak_form) if l Union[ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, cache_verbose: bool,model_randomize_parameter: Union[float, None], - cache_model: torch.nn.Sequential) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: + cache_model: torch.nn.Sequential, weak_form: None = None) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: """ Restores the model from the cache and uses it for retraining. @@ -266,6 +266,7 @@ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, model_randomize_parameter: Creates a random model parameters (weights, biases) multiplied with a given randomize parameter. cache_model: cached model + weak_form: weak form of differential equation Returns: @@ -301,7 +302,7 @@ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, equal = Equation(NN_grid, operator_NN, self.equal_cls.bconds).set_strategy('NN') model_cls = Model_prepare(NN_grid, equal, cache_model, 'NN') - cache_checkpoint, min_loss = model_cls.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound) + cache_checkpoint, min_loss = model_cls.cache_lookup(cache_dir=cache_dir, nmodels=nmodels, cache_verbose=cache_verbose, lambda_bound=lambda_bound, weak_form = weak_form) prepared_model, optimizer_state = model_cls.cache_retrain(cache_checkpoint, cache_verbose=cache_verbose) prepared_model.apply(r) diff --git a/tedeous/solver.py b/tedeous/solver.py index e4e43e9b..48f56e6a 100644 --- a/tedeous/solver.py +++ b/tedeous/solver.py @@ -54,7 +54,7 @@ class Solver(Model_prepare): """ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], - model: torch.nn.Sequential, mode: str): + model: torch.nn.Sequential, mode: str, weak_form: None = None): """ High-level interface for solving equations. @@ -69,6 +69,7 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa Calculation method. (i.e., "NN", "autograd", "mat"). """ super().__init__(grid, equal_cls, model, mode) + self.weak_form = weak_form def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: @@ -258,13 +259,14 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea lambda_bound=lambda_bound, cache_verbose=cache_verbose, model_randomize_parameter=model_randomize_parameter, - cache_model=cache_model) + cache_model=cache_model, + weak_form = self.weak_form) optimizer = self.optimizer_choice(optimizer_mode, learning_rate) if True: # if not use_cache: - min_loss = self.loss_evaluation(lambda_bound=lambda_bound) + min_loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) save_cache = False @@ -283,7 +285,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea def closure(): nonlocal cur_loss optimizer.zero_grad() - loss = self.loss_evaluation(lambda_bound=lambda_bound) + loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) loss.backward() cur_loss = loss.item() diff --git a/test.ipynb b/test.ipynb index ea40f9c9..e3eb42e1 100644 --- a/test.ipynb +++ b/test.ipynb @@ -14,12 +14,13 @@ "import scipy\n", "from scipy.io import loadmat\n", "import seaborn as sns\n", - "from points_type import *\n", + "from tedeous.points_type import *\n", "from matplotlib import cm\n", - "from input_preprocessing import *\n", + "from tedeous.input_preprocessing import *\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", - "from metrics import *\n", + "from tedeous.metrics import *\n", + "from scipy.interpolate import interp1d\n", "%load_ext autoreload\n", "%autoreload 2" ] @@ -29,8 +30,11 @@ "execution_count": 2, "outputs": [], "source": [ - "import sys\n", - "import os" + "# prepares test data (exact solution)\n", + "test_data = loadmat('examples/benchmarking_data/schrodinger_test.mat')\n", + "data = test_data['uu'].reshape(-1, 1)\n", + "u = np.real(data).reshape(-1)\n", + "v = np.imag(data).reshape(-1)" ], "metadata": { "collapsed": false @@ -38,28 +42,17 @@ }, { "cell_type": "code", - "execution_count": 5, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 6, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 228, + "execution_count": 3, "outputs": [], "source": [ - "test_data = loadmat('examples/benchmarking_data/schrodinger_test.mat')" + "# grid\n", + "x_grid = np.linspace(-5,5,256)\n", + "t_grid = np.linspace(0,np.pi/2,201)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()" ], "metadata": { "collapsed": false @@ -67,19 +60,23 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "outputs": [ { "data": { - "text/plain": "True" + "text/plain": "
", + "image/png": "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\n" }, - "execution_count": 2, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "torch.cuda.is_available()" + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", + " u, cmap=cm.jet,linewidth=0.2, alpha=1)\n", + "plt.savefig('schrod_exact.png')" ], "metadata": { "collapsed": false @@ -87,10 +84,66 @@ }, { "cell_type": "code", - "execution_count": 229, + "execution_count": 12, "outputs": [], "source": [ - "data = test_data['uu'].reshape(-1,1)" + "# transform test data into interpolated values with given grid size and wrap it in pd.dataframe\n", + "def interp_test_data(min, max, grid_test, u, v):\n", + " n = np.arange(min, max + 10, 10)\n", + " dct = {'grid': [], 'interpolated_values_u': [], 'interpolated_values_v': []}\n", + " for number in n:\n", + " x_grid = np.linspace(-5, 5, number + 1)\n", + " t_grid = np.linspace(0, np.pi / 2, number + 1)\n", + "\n", + " x = torch.from_numpy(x_grid)\n", + " t = torch.from_numpy(t_grid)\n", + "\n", + " grid = torch.cartesian_prod(x, t).float()\n", + " interpolated_values_u = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", + " interpolated_values_v = scipy.interpolate.griddata(grid_test, v, grid, method='cubic')\n", + " N = [number for i in range(len(interpolated_values_u))]\n", + " dct['grid'].extend(N)\n", + " dct['interpolated_values_v'].extend(interpolated_values_v)\n", + " dct['interpolated_values_u'].extend(interpolated_values_u)\n", + " test_data = pd.DataFrame(dct)\n", + " return test_data\n", + "\n", + "def experiment_data_prepare(test_data, experiment_data, min, max):\n", + " experiment_result = {'grid': [], 'n_iter': [], 'rmse_u': [],'rmse_v': [], 'nrmse_u': [], 'time': []}\n", + " for grid in range(min+1,max + 10+1,10):\n", + " for n_iter in range(10):\n", + " test_u = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", + " test_v = test_data[test_data['grid'] == grid]['interpolated_values_v'].values\n", + " result_u = experiment_data.query(f'n_iter == {n_iter} and grid == {grid-1}')['u'].values\n", + " result_v = experiment_data.query(f'n_iter == {n_iter} and grid == {grid-1}')['v'].values\n", + " rmse_v = np.sqrt(np.mean((test_v - result_v) ** 2))\n", + " rmse_u = np.sqrt(np.mean((test_u - result_u) ** 2))\n", + " nrmse_u = rmse_u / np.std(result_u)\n", + " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", + " experiment_result['grid'].append(grid+1)\n", + " experiment_result['n_iter'].append(n_iter)\n", + " experiment_result['rmse_v'].append(rmse_v)\n", + " experiment_result['rmse_u'].append(rmse_u)\n", + " experiment_result['nrmse_u'].append(nrmse_u)\n", + " experiment_result['time'].append(time)\n", + " data = pd.DataFrame(experiment_result)\n", + " return data\n", + "\n", + "# def draw_plot(data, min, max, interp, xlabel, ylabel, time = False):\n", + "# x = np.arange(min, max + 10, 10)\n", + "# y = interp\n", + "# f = interp1d(x, y, kind='quadratic')\n", + "# xnew = np.linspace(min ** 2, max ** 2)\n", + "# if time:\n", + "# mean_time = []\n", + "# for g in grd:\n", + "# mean_time.append(np.mean(data.query(f'grid == {g}')['time']))\n", + "# plt.plot(data['grid']*data['grid'], data['time'], marker='o', linestyle='')\n", + "# plt.plot(xnew,f(xnew))\n", + "# else:\n", + "#\n", + "# plt.xlabel(f'{xlabel}')\n", + "# plt.ylabel(f'{ylabel}')" ], "metadata": { "collapsed": false @@ -98,11 +151,15 @@ }, { "cell_type": "code", - "execution_count": 230, + "execution_count": 130, "outputs": [], "source": [ - "u = np.real(data).reshape(-1)\n", - "v = np.imag(data).reshape(-1)" + "schrodinger_cache_false = pd.read_csv(\n", + " 'examples/benchmarking_data/schrodinger_experiment_[10, 20, 30, 40]_cache=False.csv')\n", + "schrodinger_cache_true = pd.read_csv(\n", + " 'examples/benchmarking_data/schrodinger_experiment_[10, 20, 30, 40, 50]_cache=True.csv')\n", + "schrodinger_weak_cache_false = pd.read_csv(\n", + " 'examples/benchmarking_data/schrodinger_weak_experiment_[10, 20, 30, 40, 50]_cache=False.csv')" ], "metadata": { "collapsed": false @@ -110,16 +167,10 @@ }, { "cell_type": "code", - "execution_count": 127, + "execution_count": 150, "outputs": [], "source": [ - "x_grid = np.linspace(-5,5,256)\n", - "t_grid = np.linspace(0,np.pi/2,201)\n", - "\n", - "x = torch.from_numpy(x_grid)\n", - "t = torch.from_numpy(t_grid)\n", - "\n", - "grid_test = torch.cartesian_prod(x, t).float()" + "experiment_data = schrodinger_cache_true" ], "metadata": { "collapsed": false @@ -127,23 +178,25 @@ }, { "cell_type": "code", - "execution_count": 138, + "execution_count": 151, "outputs": [], "source": [ - "n = [10, 20, 30, 40]\n", - "dct = {'grid': [], 'interpolated_values_u': []}\n", + "n = [10, 20, 30, 40, 50]\n", + "dct = {'grid': [], 'interpolated_values_u': [], 'interpolated_values_v': []}\n", "for number in n:\n", - " x_grid = np.linspace(-5,5,number+1)\n", - " t_grid = np.linspace(0,np.pi/2,number+1)\n", + " x_grid = np.linspace(-5, 5, number + 1)\n", + " t_grid = np.linspace(0, np.pi / 2, number + 1)\n", "\n", " x = torch.from_numpy(x_grid)\n", " t = torch.from_numpy(t_grid)\n", "\n", " grid = torch.cartesian_prod(x, t).float()\n", - " interpolated_values = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", - " N = [number for i in range(len(interpolated_values))]\n", + " interpolated_values_u = scipy.interpolate.griddata(grid_test, u, grid, method='cubic')\n", + " interpolated_values_v = scipy.interpolate.griddata(grid_test, v, grid, method='cubic')\n", + " N = [number for i in range(len(interpolated_values_u))]\n", " dct['grid'].extend(N)\n", - " dct['interpolated_values_u'].extend(interpolated_values)\n", + " dct['interpolated_values_v'].extend(interpolated_values_v)\n", + " dct['interpolated_values_u'].extend(interpolated_values_u)\n", "test_data = pd.DataFrame(dct)" ], "metadata": { @@ -152,12 +205,27 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 152, "outputs": [], "source": [ - "experiment_data_10 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[10]_cache=False.csv')\n", - "experiment_data_20_30 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[20, 30]_cache=False.csv')\n", - "experiment_data_40 = pd.read_csv('examples/benchmarking_data/schrodinger_experiment_[40]_cache=False.csv')" + "experiment_result = {'grid': [], 'n_iter': [], 'rmse_u': [],'rmse_v': [], 'nrmse_u': [], 'time': []}\n", + "for grid in range(10,60,10):\n", + " for n_iter in range(10):\n", + " test_u = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", + " test_v = test_data[test_data['grid'] == grid]['interpolated_values_v'].values\n", + " result_u = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['u'].values\n", + " result_v = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['v'].values\n", + " rmse_v = np.sqrt(np.mean((test_v - result_v) ** 2))\n", + " rmse_u = np.sqrt(np.mean((test_u - result_u) ** 2))\n", + " nrmse_u = rmse_u / np.std(result_u)\n", + " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", + " experiment_result['grid'].append(grid+1)\n", + " experiment_result['n_iter'].append(n_iter)\n", + " experiment_result['rmse_v'].append(rmse_v)\n", + " experiment_result['rmse_u'].append(rmse_u)\n", + " experiment_result['nrmse_u'].append(nrmse_u)\n", + " experiment_result['time'].append(time)\n", + "data = pd.DataFrame(experiment_result)" ], "metadata": { "collapsed": false @@ -165,26 +233,17 @@ }, { "cell_type": "code", - "execution_count": 178, + "execution_count": 153, "outputs": [], "source": [ - "time_list_20 = [2207.342264, 1902.780795 , 2051.769395, 1990.625440, 1669.295443, 1630.366187, 1723.594879, 1735.121449,\n", - " 1989.412900, 1873.436806]\n", - "time_list_30 = [3609.354969, 3564.459932, 3626.499491, 3613.533968, 3818.807240, 3496.345418, 3819.675368,\n", - " 3774.777136, 3795.635416, 3678.129626]\n", - "time_20 = []\n", - "for val in time_list_20:\n", - " time_20_i = [val for i in range(21*21)]\n", - " time_20.append(time_20_i)\n", - "\n", - "time_30 = []\n", - "for val in time_list_30:\n", - " time_30_i = [val for i in range(31*31)]\n", - " time_30.append(time_30_i)\n", - "\n", - "time_20 = np.concatenate(time_20)\n", - "time_30 = np.concatenate(time_30)\n", - "time_20_30 = np.concatenate((time_20, time_30))" + "x = [11**2,21**2,31**2,41**2, 51**2]\n", + "grd = [11, 21, 31, 41, 51]\n", + "mean_time = []\n", + "for g in grd:\n", + " mean_time.append(np.mean(data.query(f'grid == {g}')['time']))\n", + "y = mean_time\n", + "f = interp1d(x, y, kind='quadratic')\n", + "xnew = np.linspace(11**2, 51**2)" ], "metadata": { "collapsed": false @@ -192,10 +251,11 @@ }, { "cell_type": "code", - "execution_count": 179, + "execution_count": 154, "outputs": [], "source": [ - "experiment_data_20_30['time'] = time_20_30" + "h = np.sqrt(data['rmse_v']**2 + data['rmse_u']** 2)\n", + "h_mean = list(set(h))" ], "metadata": { "collapsed": false @@ -203,10 +263,19 @@ }, { "cell_type": "code", - "execution_count": 180, - "outputs": [], + "execution_count": 160, + "outputs": [ + { + "data": { + "text/plain": "array([ 0.02695056, 0.03260382, 0.03420716, 0.03475574, 0.03492699,\n 0.034309 , 0.03360063, 0.03225105, 0.03112513, 0.02763927,\n 0.02636017, 0.07295037, 0.07319679, 0.069523 , 0.06700413,\n 0.06497201, 0.06289575, 0.06013422, 0.05698216, 0.05429713,\n 0.05016175, 0.04734092, 0.19711746, 0.1959615 , 0.19299055,\n 0.19102151, 0.1856891 , 0.17916657, 0.17192488, 0.16365532,\n 0.15508521, 0.14466002, 0.13431266, 0.52562333, 0.51784725,\n 0.49690626, 0.47210287, 0.44857975, 0.43657531, 0.4349855 ,\n 0.43444197, 0.42871452, 0.40757898, 0.37171966, 1.28071124,\n 1.19795536, 0.97999627, 0.71583666, 0.52882028, 0.52176611,\n 0.69010228, 0.92236583, 1.08294288, 1.08007742, 0.90557495,\n 1.99958073, 1.76528341, 0.98348639, -0.58226342, -2.94717013,\n -3.68001601, -0.72895298, 1.52340548, 2.18368684, 2.02259221,\n 1.41672212, 1.31929761, 1.22996009, 0.99357603, 0.70483754,\n 0.4996009 , 0.49408717, 0.68434882, 0.94443911, 1.12189913,\n 1.11994926, 0.93233271, 0.54579459, 0.53729191, 0.51428934,\n 0.48712315, 0.46181896, 0.44922325, 0.44867047, 0.44995444,\n 0.44506521, 0.42373231, 0.3863336 , 0.20492919, 0.20358779,\n 0.20035814, 0.19838182, 0.1929824 , 0.18638219, 0.179006 ,\n 0.17072315, 0.16164543, 0.15096439, 0.14012327, 0.0758565 ,\n 0.07634097, 0.07252998, 0.06995601, 0.0676208 , 0.0653251 ,\n 0.06267691, 0.0591192 , 0.05621535, 0.05225826, 0.0491113 ,\n 0.02802405, 0.03258097, 0.0342325 , 0.03482958, 0.03496365,\n 0.034333 , 0.03373345, 0.03231509, 0.03101465, 0.02774415,\n 0.02632516])" + }, + "execution_count": 160, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "experiment_data = pd.concat([experiment_data_10, experiment_data_20_30, experiment_data_40])" + "test_data[test_data['grid'] == 10]['interpolated_values_u'].values" ], "metadata": { "collapsed": false @@ -214,20 +283,19 @@ }, { "cell_type": "code", - "execution_count": 181, + "execution_count": 159, "outputs": [ { "data": { - "text/plain": " n_iter grid u v time\n0 0 10 0.022888 -0.000939 614.424292\n1 0 10 0.041829 0.003819 614.424292\n2 0 10 0.055094 0.011037 614.424292\n3 0 10 0.062073 0.018570 614.424292\n4 0 10 0.065190 0.025084 614.424292\n... ... ... ... ... ...\n16805 9 40 0.029098 0.052447 7034.597967\n16806 9 40 0.028391 0.053487 7034.597967\n16807 9 40 0.027643 0.054499 7034.597967\n16808 9 40 0.026854 0.055485 7034.597967\n16809 9 40 0.026025 0.056450 7034.597967\n\n[32040 rows x 5 columns]", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
n_itergriduvtime
00100.022888-0.000939614.424292
10100.0418290.003819614.424292
20100.0550940.011037614.424292
30100.0620730.018570614.424292
40100.0651900.025084614.424292
..................
168059400.0290980.0524477034.597967
168069400.0283910.0534877034.597967
168079400.0276430.0544997034.597967
168089400.0268540.0554857034.597967
168099400.0260250.0564507034.597967
\n

32040 rows × 5 columns

\n
" + "text/plain": "array([0.03318459, 0.03364766, 0.03383517, 0.03371757, 0.03333873,\n 0.03277451, 0.03209615, 0.03135902, 0.03058606, 0.02976841,\n 0.02887165, 0.06677186, 0.0662002 , 0.06538975, 0.06419384,\n 0.06257016, 0.06053555, 0.05812705, 0.05538708, 0.05234408,\n 0.04901552, 0.04540801, 0.19914597, 0.19753951, 0.19376087,\n 0.18795174, 0.18044549, 0.17166328, 0.1620211 , 0.15187168,\n 0.14147574, 0.13100529, 0.1205551 , 0.53122693, 0.5263576 ,\n 0.51017344, 0.48611838, 0.4573524 , 0.42635652, 0.39483088,\n 0.36379468, 0.33378702, 0.3050524 , 0.27769578, 1.2959943 ,\n 1.2217739 , 1.102437 , 0.9716155 , 0.84660417, 0.73378575,\n 0.6343204 , 0.5473268 , 0.47129452, 0.4046528 , 0.3459738 ,\n 1.9998935 , 1.7474546 , 1.4606155 , 1.2012131 , 0.98350954,\n 0.8049571 , 0.65894085, 0.53882533, 0.43902826, 0.3551675 ,\n 0.28390872, 1.2962596 , 1.2283022 , 1.1240777 , 1.007602 ,\n 0.89247227, 0.7849685 , 0.6873623 , 0.5999695 , 0.5222267 ,\n 0.45322892, 0.39199322, 0.5316465 , 0.52555156, 0.5083671 ,\n 0.4830518 , 0.45243633, 0.4188378 , 0.38398188, 0.34908372,\n 0.31496936, 0.28216833, 0.25099683, 0.1976403 , 0.19615585,\n 0.1921553 , 0.18582344, 0.17752177, 0.1676597 , 0.15660805,\n 0.14465863, 0.13203526, 0.11891508, 0.10545003, 0.06812572,\n 0.0677467 , 0.06718612, 0.0662303 , 0.06481093, 0.06294531,\n 0.0606842 , 0.05806875, 0.05510348, 0.05174833, 0.04792917,\n 0.03279287, 0.03297252, 0.03323072, 0.03333539, 0.03319079,\n 0.03280437, 0.03224742, 0.03161043, 0.03097117, 0.03037208,\n 0.02981019])" }, - "execution_count": 181, + "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "experiment_data" + "experiment_data.query(f'n_iter == {0} and grid == {10}')['u'].values" ], "metadata": { "collapsed": false @@ -235,21 +303,22 @@ }, { "cell_type": "code", - "execution_count": 191, + "execution_count": 149, "outputs": [ { "data": { - "text/plain": "604.3163278102875" + "text/plain": "
", + "image/png": "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\n" }, - "execution_count": 191, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "i = 1\n", - "n = 10\n", - "experiment_data.query(f'n_iter == {i} and grid == {n}')['time'].values[0]" + "sns.boxplot(x=data['grid']*data['grid'], y=data['time'] , showfliers=False)\n", + "plt.xlabel('Grid, points')\n", + "plt.ylabel('Time, s')\n", + "plt.savefig('schrodinger_weak_cache_false_time.png')" ], "metadata": { "collapsed": false @@ -257,22 +326,24 @@ }, { "cell_type": "code", - "execution_count": 208, - "outputs": [], + "execution_count": 135, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAAGtCAYAAAAWKH7cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABahElEQVR4nO3deVxU9f7H8dcwgINLLLmAlaXikoKJCy64lEmahhZqVmpqacWlui1qixZ6ze12M7OFStu8+quuW4WZ2W6puGuooVKWG4iKIqIIDOf3xwRJIoLCDDPzfj4ePh73nPOd4fOJlvc93+85X5NhGAYiIiIibsDD0QWIiIiI2IuCj4iIiLgNBR8RERFxGwo+IiIi4jYUfERERMRtKPiIiIiI21DwEREREbeh4CMiIiJuw9PRBVQlBQUF5Ofn4+HhgclkcnQ5IiIiUgaGYVBQUICnpyceHqXf01HwOUd+fj5JSUmOLkNEREQuQWhoKN7e3qWOUfA5R2FKDA0NxWw2O7iasrNarSQlJTld3eXhDj2C+nQ16tO1uEOfztpjYd0Xu9sDCj7FFE5vmc1mp/qFF3LWusvDHXoE9elq1KdrcYc+nbXHsixT0eJmERERcRsKPiIiIuI2FHxERETEbSj4iIiIiNtQ8BERERG3oeAjIiIibkPBR0RERNyGgo+IiIi4DQUfERERcRsOCT5r165l0KBBtGnThoiICCZPnkxOTg4AcXFxhISEEBYWVvTn448/Lvrs0qVLiYyMpHXr1kRHR7Nly5aia1arlRkzZtC5c2fCwsKIiYkhPT3d7v2JiIhIcdYCg7W/HuPTrQdZ++sxrAWGQ+qwe/DJyMjgwQcf5O6772bjxo0sXbqU9evX8/bbbwOQlJTE5MmT2bJlS9GfwYMHA7Bu3TomT57M9OnT2bBhA/369SMmJoYzZ84AEB8fz+rVq1m8eDE//vgjFouFCRMm2LtFEREROceK7al0mfEtd89J5J8fbeXuOYl0mfEtK7an2r0WuwefgIAA1qxZQ3R0NCaTiRMnTnD27FkCAgLIzc1l9+7dhISElPjZhQsX0rdvX9q2bYuXlxcjRozA39+f5cuXF10fPXo0QUFB1KxZk/Hjx7Nq1Sr2799vzxZFRETkTyu2pxIzfzOpmTnFzqdl5hAzf7Pdw49Dprpq1qwJQPfu3YmKiqJOnTpER0eTnJxMfn4+s2fPpnPnzvTq1Yu3336bgoICAFJSUmjatGmx7woODiY5OZmsrCzS0tKKXa9duza+vr7s2rXLfs2JiIgIYJvempSwk5ImtQrPTUrYaddpL4fuzr5y5UoyMzMZM2YMjz76KCNHjiQ8PJxhw4Yxc+ZMfvnlF2JjY/Hw8GDUqFFkZ2fj4+NT7DssFgunT58mOzsbgOrVq593vfBaWVmt1strzM4K63W2usvDHXoE9elq1KdrcYc+K7rHxN+OnXen51wGkJqZQ+KvR+jY6MpL/jnlqdehwcdisWCxWBg7diyDBg3ipZdeYt68eUXXW7VqxfDhw1m+fDmjRo3Cx8enaBF0oZycHPz9/YsCUeF6n3Ov16hRo1x1JSUlXWJHjuWsdZeHO/QI6tPVqE/X4g59VlSPG/adufggYMP23VhO+lx8YAWwe/DZvHkzzz77LJ999hne3t4A5Obm4uXlxerVqzl58iR33XVX0fjc3FwsFgsATZo0Yc+ePcW+LyUlhW7duuHr60u9evWKTYcdOXKEEydOnDc9djGhoaGYzebLadOurFYrSUlJTld3ebhDj6A+XY36dC3u0GdF95hzxTFYt+Gi49qHNKX1Zd7xKWtYs3vwadasGTk5Obz00ks8+eSTHDlyhBkzZjBw4EC8vLyYNm0a1157LR07dmTr1q3MmzePZ555BoCBAwcSGxvLrbfeStu2bVmwYAHHjh0jMjISgOjoaOLj4wkNDcXf35+pU6cSHh5OgwYNylWj2Wx2yr+pnbXu8nCHHkF9uhr16Vrcoc+K6rFj4zoE+VpIy8wpcZ2PCQj0tdCxcR3MHqbL/nllYffgU6NGDebOncvUqVOJiIigVq1aREVFERsbi7e3N8888wwTJ07k8OHD1K5dm0ceeYT+/fsD0KlTJ+Li4oquBwcHM2fOHPz8/ACIjY0lPz+fIUOGkJ2dTYcOHZg1a5a9WxQRERHA7GEiLqoFD83fXOJ1A4iLamG30AMOWuMTHBzMu+++W+K1u+66q9hU19/179+/KAj9nZeXF2PGjGHMmDEVUqeIiIi4Fm1ZISIiIpWi8HH2CzFh/8fZFXxERESkUqzfm1Gmx9nX782wW00KPiIiIlIp0rMuHHouZVxFUPARERGRSlG3lqVCx1UEBR8RERGpFOENAwjytXChZ7ZMQJCvhfCGAXarScFHREREKkXh4+zAeeGn8Njej7Mr+IiIiEil6R0SRPzQNgT6Fp/OCvS1ED+0Db1Dguxaj0P36hIRERHX1zskiMgWgazfm0F6Vg51a9mmt+x5p6eQgo+IiIhUOrOHiU6NL30/roqiqS4RERFxGwo+IiIi4jYUfERERMRtaI2PiIiIVDprgaHFzSIiIuL6VmxPZVLCzmL7dgX5WoiLamH3x9k11SUiIiKVZsX2VGLmbz5vs9K0zBxi5m9mxfZUu9aj4CMiIiKVwlpgMClhJ0YJ1wrPTUrYibWgpBGVQ8FHREREKsX6vRnn3ek5lwGkZuawfm+G3WpS8BEREZFKkZ514dBzKeMqgoKPiIiIVIq6tSwXH1SOcRVBwUdEREQqRdtr/bnYE+seJts4e1HwERERkUqx6Y/jXGzdcoFhG2cvCj4iIiJSKbTGR0RERNyG1viIiIiI2whvGECQr4ULLfMxYXuDc3jDALvVpOAjIiIilcLsYSIuqkWJLzAE23t84qJa2HXPLgUfERERcRsKPiIiIlIpCresuBAT2rJCREREXIS2rBARERG3ocfZRURExG3ocXYRERFxG3qcXURERNxG4ePswHnhp/BYj7OLiIiIy+gdEkT80DYE+hafzgr0tRA/tA29Q4LsWo+nXX+aiIiIuJ3eIUFEtghk/d4M0rNyqFvLNr1lzzs9hRR8REREpNKZPUx0anylo8vQVJeIiIi4DwUfERERcRsKPiIiIuI2FHxERETEbSj4iIiIiNtQ8BERERG3oeAjIiIibkPBR0RERNyGQ4LP2rVrGTRoEG3atCEiIoLJkyeTk2Pbkn7btm0MGjSIsLAwevTowcKFC4t9dunSpURGRtK6dWuio6PZsmVL0TWr1cqMGTPo3LkzYWFhxMTEkJ6ebtfeREREpOqye/DJyMjgwQcf5O6772bjxo0sXbqU9evX8/bbb5OZmckDDzzA7bffzoYNG5gyZQrTpk3j559/BmDdunVMnjyZ6dOns2HDBvr160dMTAxnzpwBID4+ntWrV7N48WJ+/PFHLBYLEyZMsHeLIiIiUkXZPfgEBASwZs0aoqOjMZlMnDhxgrNnzxIQEMDKlSvx8/NjyJAheHp60qlTJ6KioliwYAEACxcupG/fvrRt2xYvLy9GjBiBv78/y5cvL7o+evRogoKCqFmzJuPHj2fVqlXs37/f3m2KiIjIuQ5uhi/Hw++rHVqGQ/bqqlmzJgDdu3fn8OHDtGvXjujoaGbNmkXTpk2LjQ0ODmbRokUApKSkMGDAgPOuJycnk5WVRVpaWrHP165dG19fX3bt2sU111xT5vqsVuultuYQhfU6W93l4Q49gvp0NerTtbhDnxXeo1EAu1fgkfgGpn1rbKeO/0HBNR0r5vv/VJ56HbpJ6cqVK8nMzGTMmDE8+uij1KtXDx8fn2JjLBYLp0+fBiA7O/uC17OzswGoXr36edcLr5VVUlJSeVupEpy17vJwhx5Bfboa9ela3KHPy+3RI/8MVx5YSd3fFmHJPgiAYTKTUf8mDl51D3lbt1ZAlZfGocHHYrFgsVgYO3YsgwYNYtiwYWRlZRUbk5OTQ40aNQDw8fEpWgR97nV/f/+iQFS43qekz5dVaGgoZrO5vO04jNVqJSkpyenqLg936BHUp6tRn67FHfq87B6zUjFteAfT5vcwnTkOgGHxxWgzAqP9aPyuqI9fxZYM/FV3Wdg9+GzevJlnn32Wzz77DG9vbwByc3Px8vIiODiY1auLz/2lpKTQpEkTAJo0acKePXvOu96tWzd8fX2pV68eKSkpRdNdR44c4cSJE+dNn12M2Wx2yr+pnbXu8nCHHkF9uhr16Vrcoc9y93h4B6x5FZIWQUGe7Zz/ddAxFlPrezBVq4m1wGD93gzSs3KoW8tCeMMAzB6mSqm/NHZf3NysWTNycnJ46aWXyM3N5eDBg8yYMYOBAwfSq1cvjh49yvvvv09eXh6JiYkkJCQUresZOHAgCQkJJCYmkpeXx/vvv8+xY8eIjIwEIDo6mvj4ePbv38+pU6eYOnUq4eHhNGjQwN5tioiIuDbDgL2rYP4AiO8M2z60hZ4GnWDwfHhkM3R4AKrVZMX2VCKmf8PdcxL550dbuXtOIhHTv2HF9lS7l233Oz41atRg7ty5TJ06lYiICGrVqkVUVBSxsbF4e3vz7rvvMmXKFGbPnk1AQAATJkygY0fbIqhOnToRFxfHxIkTOXz4MMHBwcyZMwc/Pz8AYmNjyc/PZ8iQIWRnZ9OhQwdmzZpl7xZFRERclzUffvkMVr8CqVtt50wecH0/6PwoXN222PAV21N5aP7m874m7eRZHpq/mTeHtqF3SJAdCrdxyBqf4OBg3n333RKvhYaG8tFHH13ws/3796d///4lXvPy8mLMmDGMGTOmQuoUERGRP+Wehq0LbFNaJ/6wnfP0gbAh0CkWAhqd9xFrgcHTS0pfe/P0kiQiWwTabdrLoYubRUREpIrLPgbr37b9OZNhO+cTAOEPQPhoqFH7gh9N/PUYJ07nlfr1J07nkfjrMSKaXPh7KpKCj4iIiJwv84Dt7s6mDyD/zyem/a6Fzo9A6yHgXb30zwNrfztaph+19rejCj4iIiJif9Wy9mH6bA4kLYSCfNvJoBsg4jHbOh5zeaJDWaev7Pd0l4KPiIiIwMHNePz4Ei2TP8eEYTt3XVfo8jg07gGm8oeTTo2v5LXvUso0zl4UfERERNyVYcDeH+DHmbD3h6L7LkbTPpi6PgHXtL+sr+/Y6Er8qnuVus7Hv7oXHRsp+IiIiEhlMQzYvQJWvQgHN9nOmcwUhA7il4BImne9o0Je0mj2MDE9OrTEx9kLTYsOteuLDBV8RERE3EWB1fYOnlUvweE/HzP3tECbe6HzIxi1riKngvfR6h0SxJtD2zDxs52knfxr26kgXwtxUS3s+g4fUPARERFxfdZ82L4IfnwJju62nfOuCe1H2d7BU7Pun+MqZ+f53iFBRLYIrBJbVij4iIiIuKr8XNtWEj/NhOO/285ZfKFDDHR4EKoH2K0Us4fJrouYL0TBR0RExNXk5cDmebB6Fpw8aDtX/Uro9LDtLo/lCoeW50gKPiIiIq4i74zthYOrZ0HWnxuA1gyEiEeh7QjwruHI6qoEBR8RERFnl3cGNr0PP82CU2m2c1dcDV0eg7Bh4GVxYHFVi4KPiIiIs8o7Axvfs93hOXXYds73Guj6hG1bCc9qDi2vKlLwERERcTa5p2Hju7D6FchOt53zbXBO4PF2bH0lsBYYeqpLREREyqHwDs9PL/8VePwaQNcxcMPdVTLwAKzYnsqkhJ2kZuo9PiIiInIx+Wdti5Z/fOmvNTx+10K3PwOP2cux9ZVixfZUYuZvLtz9q0haZg4x8zcTP7SNXcOPgo+IiEhVlZ8LW+fDqv/89Vi67zXQbSy0vqdKBx6wTW9NSth5XugBMLDtyT4pYSeRLQLtNu2l4CMiIlLVWPNtLx5c9W84sc92rlZ96PYkhN1bZae0/m793oxi01t/ZwCpmTms35tht5cbKviIiIhUFQVWSFoIP8yAjN9s52rUha5P2t7D42SPpadnXTj0XMq4iqDgIyIi4miGYds89NspcHSX7Vz12rb38LS7H7yrO7S8S1W3VtmCWlnHVQQFHxEREUcxDPj1G/hmMqRutZ2z+EHEPyH8AahW05HVXbbwhgEE+VpKne4K8rU92m4vCj4iIiKO8Mda+HYy/LHaduxdEzr+Azo/bNtI1AWYPUz0uyGIt1btveCYfjcE2fV9Pgo+IiIi9nRoK3z7AqR8ZTs2V4Pw0dDlcahR26GlVTRrgcFn21JLHfPZtlTG9b5eT3WJiIi4lCO74bspsPMT27HJDG2GQbdx4HuVQ0urLBd7qgv0VJeIiIhrOXkIvp8GW+aDUQCYIHQQ3Pg0XNnY0dVVKj3VJSIi4i7OHLdtLbHuLcj/8z/sTW+Fm5+Dei0dW5ud6KkuERERV5d7Gta/ZQs9OZm2cw06Qc+J0KCjQ0uzt8KnutIyc0p8e7MJCNRTXSIiIk7Imm/bXuL76ZD154Leui3g5jho2gtM9t+J3NHMHibioloQM38zJigWfgr/asRFtdBTXSIiIk7DMOCXBPjmX3Bsj+2cbwO46VlodSd4mB1bn4P1Dgkifmib83ZnD9Tu7CIiIk5mXyKsfA4OrLcd+wTYNhBtfz94VnNsbVVI75AgIlsEsn5vBulZOdStZZvesuednkIKPiIiIuV1dA98PRGSl9mOvapDp1jo/ChYrnBoaVWV2cNkt0fWS6PgIyIiUkaeZzMwfTEWNr0PhhVMHhA2DG58Bq6w75SNXBoFHxERkYvJzca0+lVCfpqFh/WM7VzTW21PatVt7tDSpHwUfERERC6kwGp78eB3U/E4lQaAERSG6ZbJ0LCrg4uTS6HgIyIiUpKUb2wLl9N3AGD4XcveRvdybZ9/Yvb0cnBxcqkUfERERM6VngwrJ/y1iajFD7qPo6DNSI5v/4VrTR4OLU8uj4KPiIgIwKkj8P1U2PSBbeGyhyeEP2B7PL16AFitjq5QKoCCj4iIuLe8HEh8A36cCblZtnPNb4PIf7n8JqLuSMFHRETck2HA9sXw9STI3Gc7F9Qaek2F6yIcWppUHgUfERFxPwc2wYqn/3rj8hVXwc3PQ+id4KE1PK5MwUdERNzHyUO2Ozw/f2Q79qoBXR6DTg+Dd3WHlib2oeAjIiKuL+8MrHkVfnoZ8k7bzt1wj+0uj9647FYccj8vOTmZkSNHEh4eTkREBOPGjSMjIwOAuLg4QkJCCAsLK/rz8ccfF3126dKlREZG0rp1a6Kjo9myZUvRNavVyowZM+jcuTNhYWHExMSQnp5u9/5ERKSKKFzH81p7+G6KLfRc0wFGfwt3xCv0uCG7B5+cnBxGjRpFWFgYP/30E8uWLePEiRM8++yzACQlJTF58mS2bNlS9Gfw4MEArFu3jsmTJzN9+nQ2bNhAv379iImJ4cwZ2+vD4+PjWb16NYsXL+bHH3/EYrEwYcIEe7coIiJVwcHN8G5vWHQfZO6HK66GAe/AfV/CVW0dXZ04iN2Dz6FDh2jevDmxsbF4e3vj7+/P4MGD2bBhA7m5uezevZuQkJASP7tw4UL69u1L27Zt8fLyYsSIEfj7+7N8+fKi66NHjyYoKIiaNWsyfvx4Vq1axf79++3ZooiIONKpdPg0Fub0gP2Jtp3TbxoPD2+A0IFgMjm6QnEgu6/xadSoEXPnzi127ssvv6Rly5YkJyeTn5/P7Nmz2bRpE7Vq1WLAgAGMGjUKDw8PUlJSGDBgQLHPBgcHk5ycTFZWFmlpaTRt2rToWu3atfH19WXXrl1cc801Za7R6mQvqSqs19nqLg936BHUp6tRn/YuJA/Thrcxrfo3prO29/EUhN6J0eM521NbcFkvIawyfVYiZ+2xPPU6dHGzYRjMmjWL7777jvnz53P06FHCw8MZNmwYM2fO5JdffiE2NhYPDw9GjRpFdnY2Pj4+xb7DYrFw+vRpsrOzAahevfp51wuvlVVSUtLlNeYgzlp3ebhDj6A+XY36rHy10jdwzY7X8Tllex9Ptm9T9oc8QnZAS/jtCHCkwn6WO/w+XblHhwWfU6dO8cwzz7Bjxw7mz59Ps2bNaNasGRERf700qlWrVgwfPpzly5czatQofHx8yMnJKfY9OTk5+Pv7FwWiwvU+516vUaNGuWoLDQ3FbDZfYmf2Z7VaSUpKcrq6y8MdegT16WrUpx0c/x2PlRMw7bYteTCq18bo8RyW1kNoUsF7arnD79NZeyysuywcEnz27dvH6NGjqV+/PosWLSIgIACAr7/+mqNHj3LXXXcVjc3NzcVisQDQpEkT9uzZU+y7UlJS6NatG76+vtSrV4+UlJSi6a4jR45w4sSJYtNfZWE2m53qF17IWesuD3foEdSnq1GflSA327bFxJpXwXoWTGbo8CCm7k9h8vGr1B/tDr9PV+7R7oubMzMzGT58OG3atOGdd94pCj1gm/qaNm0aa9euxTAMtmzZwrx584qe6ho4cCAJCQkkJiaSl5fH+++/z7Fjx4iMjAQgOjqa+Ph49u/fz6lTp5g6dSrh4eE0aNDA3m2KiEhlOPfx9B//Yws9DbtDzBroPQ0qOfSI87P7HZ8lS5Zw6NAhvvjiC1asWFHs2pYtW3jmmWeYOHEihw8fpnbt2jzyyCP0798fgE6dOhEXF1d0PTg4mDlz5uDn5wdAbGws+fn5DBkyhOzsbDp06MCsWbPs3KGIiFSK9GT4YizsXWU79mtg21er+W16UkvKzO7BZ+TIkYwcOfKC1++6665iU11/179//6Ig9HdeXl6MGTOGMWPGXHadIiJSRZzNgu+nw7o3oSAfPC3Q5XGI+Cd4+Vz88yLn0JYVIiJSNRVOa305Hk6l2c416wu9p4L/dQ4tTZyXgo+IiFQ9h3fC8rHwx0+2Y/+GcOu/oektjq1LnJ6Cj4iIVB05J/+a1jKs4OkDXZ+Ezo+Al8XR1YkLUPARERHHMwzYsQRWPPvXtFbz22xPavnpyVypOAo+IiLiWEdTYPmT8Nv3tuOAxtDn3xDc06FliWtS8BEREcfIO2N7CeHqWWDNBXM16DYGOj+qaS2pNAo+IiJif3u+guVj4PjvtuPgntDnRQho5NCyxPUp+IiIiP1kHoAVT8MvCbbjWvXh1ulwfT+9hFDsQsFHREQqnzXP9qTWd9MgL9u2t1bHGLjxaahWy9HViRtR8BERkcq1fwMsewwOb7cdX9MRbpsJ9Vo6tCxxTwo+IiJSOXIy4Zt/wYZ3AAN8/CFyMrQeAh523yNbBFDwERGRimYYsGOpbS3PqcO2czfcA7dMhhq1HVubuD0FHxERqTjHf4fPn4SUr23HVwbDbS9Dw24OLUukkIKPiIhcvoJ8TKtfgVX/hvwzYPa2bTUR8ZjeySNVioKPiIhcngMbaLHqITyy9tqOr+tqu8tTu4lj6xIpgYKPiIhcmrNZ8M2/8Fg/Bx8MDJ8ATL2mwg136Z08UmUp+IiISPnt+sK2lufkQUzAsatvwW/w65hr1XV0ZSKlUvAREZGyyzoMX4yDnZ/Yjv2vw9pnJr+f9KN19SsdWppIWSj4iIiUkbXAYP3eDNKzcqhby0J4wwDMHm4ypWMYsHkefPWc7f08JjN0fhi6P23bXHTrVkdXKFImCj4iImWwYnsqkxJ2kpqZU3QuyNdCXFQLeocEObAyOzi6BxIegz9+sh0HtYZ+syHoBtux1eqoykTKTa/OFBG5iBXbU4mZv7lY6AFIy8whZv5mVmxPdVBllcyaB6v+A/ERttDjVR16TYVR3/wVekScjO74iIiUwlpgMClhJ0YJ1wzABExK2Elki0DXmvY6tBU+exjSkmzHwT2h70zwv9ahZYlcLgUfEZFSrN+bcd6dnnMZQGpmDuv3ZtCpsQss7s07Az/MgNWzwbCCTwDcOgNCB+kRdXEJCj4iIqVIz7pw6LmUcVXaH2vgs0fgWIrtuGU03PpvqFnHsXWJVCAFHxGRUtStVbbtFso6rkrKOQnfTIINc23HtYKg70vQvK9j6xKpBAo+IiKlCG8YQJCvhbTMnBLX+ZiAQF/bo+1OafdKWPY4nDxgO24zHCL/BT5+Di1LpLLoqS4RkVKYPUzERbUAbCHnXIXHcVEtnG9h8+kMWPIg/N8gW+jxvw7u/cz2mLpCj7gwBR8RkYvoHRJE/NA2BPoWn84K9LUQP7SN873H55dl8EZH+PkjwASdHoaYNdCou6MrE6l0muoSESmD3iFBRLYIdO43N2cfs203sX2R7bh2U+j/BlzT3rF1idiRgo+ISBmZPUzO+8j6jk9g+RjIPgImD4j4p227CS8nXpQtcgkUfEREXNmpI7bAU7ipaJ3r4fbX4aq2Di1LxFEUfEREXJFhwI4lsHwsnD5m21S06xPQbSx4VnN0dSIOo+AjIuJqTh2Bzx+HXxJsx/VCoP/rUL+1Q8sSqQoUfEREXMmOT+DzJ2x3eTw8bXd4ujwBnt6OrkykSihX8Dl+/DiffPIJa9euJTU1FbPZTFBQEF27dqVPnz74+flVUpkiIlKq0xnw+ZO26S2w3eW5PR6CWjm2LpE/WQuMKvFUZJmCj9Vq5fXXX+eDDz4gJCSEsLAwevTogdVqJT09neXLl/PKK68wbNgwHnroITw9dSNJRMRukj+HhMcgO/3PtTxP/rmWR3d5pGpYsT2VSQk7i234G+RrIS6qhd3fg1WmhHLvvfcSHh7OF198Qd26dUsck5aWxn//+1+GDRvGhx9+WKFFiohICc4chy+e/vNFhECd5ra7PFe1cWxdIudYsT2VmPmbz9vyJS0zh5j5m+3+EtAyBZ/p06dzzTXXlDomMDCQsWPHsn///gopTERESrF7JSQ8ClmptvfydH4UbnxG7+WRKsVaYDApYWeJ+9wZ2LZ9mZSwk8gWgXab9ipT8LlQ6Pn111+pWbMm9erVu+hYERGpADkn4ctnYct/bcdXBsPtb+rty1Ilrd+bUWx66+8MIDUzh/V7M+z2ctBy7dW1efNmbr/9dgA++ugj+vbty80338zXX39dGbWJiMi59v4I8RF/hh4TdIyFh35S6JEqKz3rwqHnUsZVhHKtQn7ppZe48cYbMQyDt956i+nTp+Pn58dLL71Ez549K6tGERH3lpcD3/wLEl+3Hftda1vLc12EY+sSuYi6tco29VrWcRWhXMHnt99+Y/78+fz2228cPXqUPn364O3tzeOPP15Z9YmIuLdDW2DJg3B0l+24zXDoNQWq1XJsXSJlEN4wgCBfC2mZOSWu8zEBgb62R9vtpVxTXWazmezsbFatWkXr1q3x9vbm4MGD1KxZs1w/NDk5mZEjRxIeHk5ERATjxo0jIyMDgG3btjFo0KCiR+YXLlxY7LNLly4lMjKS1q1bEx0dzZYtW4quWa1WZsyYQefOnQkLCyMmJob09PRy1SYiUiVY8+D7GTC3py301KwH9/wP+s1W6BGnYfYwERfVArCFnHMVHsdFtbDr+3zKFXx69uzJ0KFDeeONNxg4cCApKSncd9993HbbbWX+jpycHEaNGkVYWBg//fQTy5Yt48SJEzz77LNkZmbywAMPcPvtt7NhwwamTJnCtGnT+PnnnwFYt24dkydPZvr06WzYsIF+/foRExPDmTNnAIiPj2f16tUsXryYH3/8EYvFwoQJE8rTooiI4x3ZDe/cAt9PhYJ8aHE7/CMRmvZydGUi5dY7JIj4oW0I9C0+nRXoa7H7o+xQzqmu5557jk8//RSLxUKfPn34/fffueuuuxg+fHiZv+PQoUM0b96c2NhYzGYz3t7eDB48mHHjxrFy5Ur8/PwYMmQIAJ06dSIqKooFCxbQqlUrFi5cSN++fWnb1rar8IgRI/j4449Zvnw5AwYMYOHChYwZM4agINtfxPHjx9OlSxf279+vp81EpOorKID1b8PXcZCfAxZf6DsTQgaAyf5vuBWpKL1DgohsEeg8b24+cOAAV199NWazmejo6KLz1113HSNHjiw29mIho1GjRsydO7fYuS+//JKWLVuyZ88emjZtWuxacHAwixYtAiAlJYUBAwacdz05OZmsrCzS0tKKfb527dr4+vqya9cuBR8RqdoyD8InMbD3B9tx4x62jUWvqO/YukQqiNnDZLdH1ktTpuAzbtw42rdvz9ChQ6lTp06JY9LT05k3bx4bN27ko48+KtMPNwyDWbNm8d133zF//nzmzZuHj49PsTEWi4XTp08DkJ2dfcHr2dnZAFSvXv2864XXyspqtZZrvKMV1utsdZeHO/QI6tPVlLVP044lmJY/iSknE8PTByPyXxht77Pd5XGCv0b6fboOZ+2xPPWWKfjMmzeP1157jd69e9OqVSvCwsKoV68eBQUFHD58mE2bNpGcnMzQoUOZN29emX7wqVOneOaZZ9ixYwfz58+nWbNm+Pj4kJWVVWxcTk4ONWrUAMDHx4ecnJzzrvv7+xcFosL1PiV9vqySkpLKNb6qcNa6y8MdegT1WVVZDYNfjuRyPKcAf4sH19fxxlyGKagL9WnOO8U1SbO58qDtXWjZvs3Y2+YZzno2gG3bKrR2e3C23+elcoc+XbnHMgUfT09PHnvsMe69916WLl1KYmIiK1euxGQycdVVV3HLLbcwa9YsrryybLew9u3bx+jRo6lfvz6LFi0iIMD2GFvTpk1ZvXp1sbEpKSk0adIEgCZNmrBnz57zrnfr1g1fX1/q1atHSkpK0XTXkSNHOHHixHnTZxcTGhqK2Wwu12ccyWq1kpSU5HR1l4c79Ajqsyr7ckca/1r2C2knzxadC7yiGs/fdj29WgaW+JlS+/z9Jzw+jcF08iCGyQOjyxNYuo7lerNXZbZRKZzx93kp3KFPZ+2xsO6yKNfi5oCAAO6//37uv//+SyoMIDMzk+HDh9OxY0emTJmCh8dfD5ZFRkby4osv8v777zNkyBA2bdpEQkICb7zxBgADBw4kNjaWW2+9lbZt27JgwQKOHTtGZGQkANHR0cTHxxMaGoq/vz9Tp04lPDycBg0alKtGs9nsVL/wQs5ad3m4Q4+gPquaFdtTif2/ree9h+TwybPE/t/Wiz6ZUqzP/LPw7Quw5lXAAP+GmKLfxnRNeKXVby/O8vu8XO7Qpyv3WK7gUxGWLFnCoUOH+OKLL1ixYkWxa1u2bOHdd99lypQpzJ49m4CAACZMmEDHjh0B21NecXFxTJw4kcOHDxMcHMycOXPw8/MDIDY2lvz8fIYMGUJ2djYdOnRg1qxZdu5QRFzJxTZZhHJssnh4Jyx5AA7/+f9M29wLvaZBtfK9C01ELp3dg8/IkSPPexLsXKGhoaUuju7fvz/9+/cv8ZqXlxdjxoxhzJgxl12niAhcfJNFKMMmi0YBJL4NX8WB9SxUvxL6vQrN+1ZCxSJSGrsHHxERZ5J2smybJ15onGfOMTw+vBN+/dZ2oskt0O81qFWvokoUkXJQ8BERKcXRrLMXH3Shcbu+oMUP/8CUmwmeFtseW+3u18sIRRyoXFtWAPz666+88MILPPzwwxw/fpz58+dXRl0iIlXC8dNlCz7FxuWehmWPY/7fELxyMzHqhcADP0D7UQo9Ig5WruCzevVq7rzzTo4fP86aNWvIycnh9ddf5+23366s+kREHMrDVLZ/TRaNS90Gb3eHje8CkNZoEAX3fQV1m1dWiSJSDuUKPjNnzmTmzJm89NJLmM1mgoKCePvtt/n4448rqz4REYfq0DCgbOOu84PVs2HOzXB0N9QMxDpkCQdbxoBntcotUkTKrFxrfP744w+6desGgOnP27WhoaFkZmZWfGUiIlWARxk2UazLcUK/GwFpa2wnmt8GUbPB4gdbt1ZmeSJSTuW641O/fn02b95c7FxSUlLRbugiIq7m6KnS1/jc7LGJFdWewi9tDXhVh6hXYPB8qOH4zRhF5HzluuPz4IMPEhMTw913301eXh5z5szhv//9L0888URl1Sci4lB1a1lKPF+NXJ7x/D9GeK4E4FRAS2re8wHUbmLP8kSknMoVfPr27UvNmjVZsGAB9evXJzExkfHjx9OrV6/Kqk9ExKHCGwYQ5GshLTOn6E3NwaYDvOr1Ktd77Afg/8z9GPzQHPAuOSSJSNVR7vf4dO/ene7du1dGLSIiVY7Zw0RcVAti5m/GhMHd5m953nMeFlMeR40reDIvhrvvGYlZoUfEKZQr+Ozfv58333yTgwcPUlBQUOzavHnzKrQwEZGqondIEHPvbITHsse4qSARgB+srZjh8xiPDupc6galIlK1lCv4PPHEE3h5edGxY8diu6qLiLi031dz8/ejoeAgBR5e7GzxON6tHyChUe2Lb0wqIlVKuYJPSkoKa9euxWLRLV0RcQPWfFj1Iqz6t22j0YDGeAx8h5D6YY6uTEQuUbmCT/PmzUlLS+O6666rpHJERKqIzIOwZDT8sdp23HoI3PpvqFbTsXWJyGUpV/CZMGECI0aM4JZbbuGKK64odu3hhx+u0MJERBxm1wr4JAbOZIB3TbhtFrQa5OiqRKQClCv4vPrqq5w+fZodO3YUW+Nj0qZ7IuIK8nPh64mQ+LrtOOgGGPgeXNnYoWWJSMUpV/BZt24dX331FbVr166sekREHCPjN1h0HxzaYjvuEAORk4rts2UtMFi/N4P0rBzq1rIQ3jBAi5tFnEy5gk/dunWpVk2b7YmIi9m+GD77J+RmgY8/9H8DmvcpNmTF9lQmJewkNTOn6FyQr4W4qBZ6nF3EiZQr+Nx///384x//4N5778XX17fYFFf79u0rvDgRkUqVexpWPA2bP7AdN+gEA+aC79XFhq3YnkrM/M1Fb24ulJaZQ8z8zcQPbaPwI+IkyhV8nn/+eQA2bNhQ7LzJZOKXX36puKpERCpbejIsHAFHfgFM0G0MdH8azMX/tWgtMJiUsPO80ANg2D7JpISdRLYI1LSXiBMoV/BJTk6urDpEROxn64fw+ROQdxpq1oPot6HRjSUOXb83o9j01t8ZQGpmDuv3ZtCpsXZkF6nqyhR80tLSCAwM5NChQxccU79+/QorSkSkUuSehuVjYet823GjGyF6DtSse8GPpGddOPRcyjgRcawyBZ8+ffqwefNmevTogclkwjBsN30L/7emukSkyjt3asvkATc+C12fAA9zqR+rXaNsD3SUdZyIOFaZgs9bb70FwDfffFOpxYiIVIq/T20NeAcadi3TRwuMklb3XPo4EXGsMgWfBx98kM2bN3PVVVdVdj0iIhXnEqa2/i7xt2NlHte1aZ1LKFJE7KlMwcfQ/5MREWdz3tTWM9D1yYtObf3dwRNnKnSciDhWmYKPtqQQEaey7WNY9tglTW39XX0/nwodJyKOVabgc+bMGW6++eZSx2j9j4g4XF4OrHgKNr1vO27Y3fZCwnJMbf1dRHBt3vj+1zKNE5Gqr0zBx8vLS7uvi0jVlvEb/G84pP0MmODGp6Hb2HJPbf1d++sCMJmgtBl/k8k2TkSqvjIFH09PT+64447KrkVE5NL8sgw++QeczYTqV9oWMAeXfpe6rDb9cbzU0AO2ULTpj+N6gaGIE9DiZhFxXtY8+HoirH3NdnxNBxj4HvhW3BOoeoGhiGspU/Dp169fZdchIlI+Jw/BwpGwP9F23Olh6DkRzF4V+mPq1rJU6DgRcawyBZ9JkyZVdh0iImX367eweBScPgbVroD+r0OLyvk/aOENAwjytZCWmVPiRqUmINDXQnhDrfERcQYeji5ARKTMCgrgh3/Df6NtoScwFB74vtJCD4DZw0RcVAvAFnLOVXgcF9VCO7OLOAkFHxFxDqcz4P/uhO+mAAa0uRfu/wqubFzpP7p3SBDxQ9sQ6Ft8OivQ10L80Db0Dgmq9BpEpGKUaapLRMShDm2B/90LJ/aBpwX6zoSwIXYtoXdIEJEtAlm/N4P0rBzq1rJNb+lOj4hzUfARkapt0we2/basZ8H/OrjzvxDUyiGlmD1MemRdxMkp+IhI1ZR3BpaPgS1/bjDa9Fa4403w8XNoWSLi3BR8RKTqydhrm9pK+9m2wWiPCRDxOHhoWaKIXB4FHxGpWnatgKUPQE4mVK8NA9+BRjc6uioRcREKPiJSNRRY4ftpsOpF2/HV7WHQBxX6FmYREQUfEXG80xmwZDSkfG07Dn8AbpkCnt6OrUtEXI6Cj4g4VurP8PFQOPEHePpA1Ctww2BHVyUiLsqhKwUzMjKIjIxk3bp1Refi4uIICQkhLCys6M/HH39cdH3p0qVERkbSunVroqOj2bJlS9E1q9XKjBkz6Ny5M2FhYcTExJCenm7XnkSk7Ew//w/eibSFHr9rYdRXCj0iUqkcFnw2bdrE4MGD2bdvX7HzSUlJTJ48mS1bthT9GTzY9i/CdevWMXnyZKZPn86GDRvo168fMTExnDlzBoD4+HhWr17N4sWL+fHHH7FYLEyYMMHuvYnIRVhzuWb7q3h8+hDk50BwT9vWE4Ghjq5MRFycQ4LP0qVLGTNmDI8//nix87m5uezevZuQkJASP7dw4UL69u1L27Zt8fLyYsSIEfj7+7N8+fKi66NHjyYoKIiaNWsyfvx4Vq1axf79+yu9JxEpo6w0PP7bn7p7l9qOu42De/4H1bXJp4hUPoes8enSpQtRUVF4enoWCz/Jycnk5+cze/ZsNm3aRK1atRgwYACjRo3Cw8ODlJQUBgwYUOy7goODSU5OJisri7S0NJo2bVp0rXbt2vj6+rJr1y6uueaaMtdntVovv0k7KqzX2eouD3foEdygz/2JeCwaienUYayeNSi44y08mvcBA3DBnl3+9/kn9ek6nLXH8tTrkOBTp06dEs9nZWURHh7OsGHDmDlzJr/88guxsbF4eHgwatQosrOz8fHxKfYZi8XC6dOnyc7OBqB69ernXS+8VlZJSUnlGl9VOGvd5eEOPYIL9mkY1Pn9U67Z8Tomw8qZWtfxa7t/cTanPmzd6ujqKp3L/T4vQH26DlfusUo91RUREUFERETRcatWrRg+fDjLly9n1KhR+Pj4kJOTU+wzOTk5+Pv7FwWiwvU+516vUaNGueoIDQ3FbDZfYhf2Z7VaSUpKcrq6y8MdegQX7TM/B9PyJ/HY/iEABS1ux9znZc7u2utafZbAJX+fJVCfrsNZeyysuyyqVPD5+uuvOXr0KHfddVfRudzcXCwWCwBNmjRhz549xT6TkpJCt27d8PX1pV69eqSkpBRNdx05coQTJ04Um/4qC7PZ7FS/8ELOWnd5uEOP4EJ9Zh60Pap+aLNt64mek/Do/AjmggLAhfq8CPXpWtyhT1fusUptfGMYBtOmTWPt2rUYhsGWLVuYN29e0VNdAwcOJCEhgcTERPLy8nj//fc5duwYkZGRAERHRxMfH8/+/fs5deoUU6dOJTw8nAYNGjiyLRH39McaeLu7LfT4+MPQJRDxKJhMjq5MRNxYlbrjExkZyTPPPMPEiRM5fPgwtWvX5pFHHqF///4AdOrUibi4uKLrwcHBzJkzBz8/PwBiY2PJz89nyJAhZGdn06FDB2bNmuW4hkTckWHAhrmw4mkoyId6IXDXAvC/ztGViYg4Pvjs2rWr2PFdd91VbKrr7/r3718UhP7Oy8uLMWPGMGbMmAqtUUTKKC8HPn8Sts63HYcMgH6vgnf51tmJiFQWhwcfEXERmQfhf8Pg4Kai9Tx0fkRTWyJSpSj4iMjl+2OtLfRkHwGLHwx6Dxr3cHRVIiLnUfARkcuz8V1YPvav9TyD50NAQ0dXJSJSIgUfEbk0+bmw4ilb8AFoeQf0f13reUSkSlPwEZHyO3UE/ncv7FsDmODm56DLE1rPIyJVnoKPiJRP6jb48B44eQC8a8GAudCst6OrEhEpEwUfESm7pEXw6cOQfwYCGsPdH0KdZo6uSkSkzBR8ROTiCqzw7WT46WXbcXBPGPAO+Pg5tCwRkfJS8BGR0uVkwuJRsGel7Tjin3BzHHi45j4+IuLaFHzE5VgLDNbvzSA9K4e6tSyENwzA7KFFt5fkaAp8eBcc2wOeFuj3GrQa5OiqREQumYKPuJQV21OZlLCT1MyconNBvhbiolrQOyTIgZU5oZRvYNFI2x2fK66y7bdVP8zRVYmIXJYqtTu7yOVYsT2VmPmbi4UegLTMHGLmb2bF9lQHVeZkDAMS42HBQFvouTocRn+n0CMiLkHBR1yCtcBgUsJOjBKuFZ6blLATa0FJI6RIfi4kPGrbWd0ogBvugRHLoFY9R1cmIlIhFHzEJazfm3HenZ5zGUBqZg7r92bYryhnk30U5vWHzfNsm4ze8gLc/gZ4VnN0ZSIiFUZrfMQlpGddOPRcyji3k7YdPrwbMvdBtStg4LvQJNLRVYmIVDgFH3EJdWtZKnScW/llGSx5APKyIaAR3P2RXkooIi5LU13iEsIbBhDka+FCD62bsD3dFd4wwJ5lVW2GAatehI+H2EJPw+4w6huFHhFxaQo+4hLMHibioloAnBd+Co/jolrofT6FcrNh0X3w7Qu24/AHYehiqK5gKCKuTcFHXEbvkCDih7Yh0Lf4dFagr4X4oW30Hp9Cx/+Ad3rBjiXg4Qm3zYI+/wazl6MrExGpdFrjIy6ld0gQkS0C9ebmC9n7I/zvXjiTATXqwJ3/hWs7OboqERG7UfARl2P2MNGp8ZWOLqNqMQxY/zaseAYMKwS1tr2J2fdqR1cmImJXCj4iri7/LCx7ArbOtx23GgxRr4CXj2PrEhFxAAUfEVd2MhU+HgoHN9peShj5L+j0MJg09Sci7knBR8RV7d9gCz2n0sDiZ3spYfDNjq5KRMShFHxEXNHmefD5k2DNhTrXw93/Z3s5oYiIm1PwEXEleTnwxVhb8AFofhvc8SZUq+XYukREqggFHxFXcWIffDwMUrcCJrhpPHR9Ejz0ui4RkUIKPiKuIOVrWDwKzhwHH38Y8I7W84iIlEDBR8SZFRTAj/+B76YCBtQPgzvngV8DR1cmIlIlKfiIOKszx2HJg7DnS9tx2xHQewZ4aQd6EZELUfARcUZpSbZH1Y//DuZq0PclaDPM0VWJiFR5Cj4izmbrh7DsMcjPsU1p3flfqN/a0VWJiDgFBR8RZ5F72vao+pY/t54I7gnRc6B6gGPrEhFxIgo+Is7gyG5YOBzSdwImuPFp6DZOj6qLiJSTgo9IVbftY1j2OORlQ426MGAuNOru6KpERJySgo9IVZV7Gr4YB1v+aztu2A2i50Kteo6tS0TEiSn4iFRFR3fD4vv+NrU1FjzMjq5MRMSpKfiIVDEBB77GY8Ur50xtzYFGNzq6LBERl6DgI1JV5J7G9MU4GhZObV3X1bb1hKa2REQqjIKPSFWQlgSL7sPj6G4MTBjdxuJx49Oa2hIRqWAKPiKOZBiw7k346nmw5mLUDGRPyBgad79PoUdEpBIo+Ig4yqkj8Ok/YM9K23HTWymImk3W7v2OrUtExIU59O1nGRkZREZGsm7duqJz27ZtY9CgQYSFhdGjRw8WLlxY7DNLly4lMjKS1q1bEx0dzZYtW4quWa1WZsyYQefOnQkLCyMmJob09HS79SNSZinfQHxnW+gxV4M+/4G7P4TqVzq6MhERl+aw4LNp0yYGDx7Mvn37is5lZmbywAMPcPvtt7NhwwamTJnCtGnT+PnnnwFYt24dkydPZvr06WzYsIF+/foRExPDmTNnAIiPj2f16tUsXryYH3/8EYvFwoQJExzSn0iJ8nNh5QSYHw3Z6VDnenjgOwgfDSaTo6sTEXF5Dgk+S5cuZcyYMTz++OPFzq9cuRI/Pz+GDBmCp6cnnTp1IioqigULFgCwcOFC+vbtS9u2bfHy8mLEiBH4+/uzfPnyouujR48mKCiImjVrMn78eFatWsX+/Zo6kCrgaAq80xPWvGo7bj/KFnrqtXRsXSIibsQha3y6dOlCVFQUnp6excLPnj17aNq0abGxwcHBLFq0CICUlBQGDBhw3vXk5GSysrJIS0sr9vnatWvj6+vLrl27uOaaa8pcn9VqvZS2HKawXmeruzycukfDwLRlHqaVEzDlZWP4+FMQ9So062O7fk5PTt1nOahP16I+XYez9lieeh0SfOrUqVPi+ezsbHx8fIqds1gsnD59+qLXs7OzAahevfp51wuvlVVSUlK5xlcVzlp3eThbj55nM7h223/wO5wIwMkrW/N72DPknakDW7de8HPO1uelUp+uRX26DlfusUo91eXj40NWVlaxczk5OdSoUaPoek5OznnX/f39iwJR4Xqfkj5fVqGhoZjNzvMosdVqJSkpyenqLg+n7DF5GR7fPI7p9DEMszfGTROo0fEftDRdeIbZKfu8BOrTtahP1+GsPRbWXRZVKvg0bdqU1atXFzuXkpJCkyZNAGjSpAl79uw573q3bt3w9fWlXr16pKSkFE13HTlyhBMnTpw3fXYxZrPZqX7hhZy17vJwih5zMuGLp2Hb/9mO64Viin4bU70WZf4Kp+izAqhP16I+XYcr9+jQx9n/LjIykqNHj/L++++Tl5dHYmIiCQkJRet6Bg4cSEJCAomJieTl5fH+++9z7NgxIiMjAYiOjiY+Pp79+/dz6tQppk6dSnh4OA0aNHBkW+JOfv8J4rvYQo/JA7o8DqO/gXKEHhERqTxV6o6Pv78/7777LlOmTGH27NkEBAQwYcIEOnbsCECnTp2Ii4tj4sSJHD58mODgYObMmYOfnx8AsbGx5OfnM2TIELKzs+nQoQOzZs1yXEPiPvJy4LsXYM1rgAH+18Edb0GDjo6uTEREzuHw4LNr165ix6GhoXz00UcXHN+/f3/69+9f4jUvLy/GjBnDmDFjKrRGkVKlboOlD0H6Tttxm+HQawpUq+XYukRE5DwODz4iTis/F1a9CD/NhIJ8qFEH+r0KzW51dGUiInIBCj4il+LQVvjkH5C+w3bcoj/0nQk1aju0LBERKZ2Cj0h55J+FH/4NP70MhhWq14a+/4GWdzi6MhERKQMFH5GyOrgZPo39ay1Pyztsm4vqLo+IiNNQ8BG5mPyz8P10WP3KOXd5XoKWtzu6MhERKScFH5HSHNgEn/4DjiTbjkMGwK0vQo0rHVuXiIhcEgUfkZKczYJvp8C6NwHD9sRW35nQop+jKxMRkcug4CMux1pgsH5vBulZOdStZSG8YQBmD1PZv2DXCvj8STh5wHbcajD0ng7VAyqnYBERsRsFH3EpK7anMilhJ6mZf21mG+RrIS6qBb1Dgkr/cNZhWPEU7FhqO/ZrALe9DME9K7FiERGxpyq1V5fI5VixPZWY+ZuLhR6AtMwcYuZvZsX21JI/aBiw6QN4vb0t9Jg8oPMj8I9EhR4RERejOz7iEqwFBpMSdmKUcK3w3KSEnUS2CCw+7XV0DyQ8Bn/8ZDsOugGiZkP91pVbsIiIOISCj7iE9XszzrvT83epmTms35tBp8ZX2h5RX/0KrPoPWM+CV3W46VnoEANm/WMhIuKq9G94cQmpJ86UfVzKN7B8LGT8ajvZ+Ga4baZtR3UREXFpCj7iErbsP37RMYEco+mqWMj83naiZj24ZQqEDgRTOZ76EhERp6XgYweX/Xi1XFRJa3sKeZLPSPMKHvNcTI3Ms7bFy+EPwk3PgMXXbjWKiIjjKfhUsst6vFrKrOGVNUo838H0C//yeo9mHrZ38hz2vYF6d78OgaH2LE9ERKoIPc5eiS758Wopt2GdruPcm2h1OMFMrzf4uNpkmnkc4JhRi3F5D+D/8LcKPSIibkzBp5KU9fFqa0FpkzRSVt6eHozu2hAv8rnf/DnfVHuSaPNPFBgm5uffTI+zL+EfMRJvL93kFBFxZ/qvQCW52OPVBn97vFou2zPBB3jg5wlcmbMPgG0FjXgubyTbaczobg15pk8LB1coIiKOpuBTSdKzSn+nTHnHSSmO7IIvn4WUr7kSMGrU5ZOA+1hq3MgNtWvycZ8W+HibHV2liIhUAQo+laRuLUuFjpMSnDkOP/wb1r8NBfng4cVvwcMZtbc7v+0xAxmQksFXOw8zsV9LLSYXERGt8aks4Q0DCPK1cKGH1k3Ynu4Kb6gdv8utwAob3oHZbSDxDVvoadaHVZEJ9Pi5B79lFb+7k3byLA9pMbmIiKDgU2nMHibiomxrSv4efgqP46Ja6H0+5fXbd/BWN/j8CTiTAXWaw7ClWAf/H49+lVXqR59ekqTF5CIibk7BpxL1DgkifmgbAn2LT2cF+lqIH9pGUy/lkbad4MRxmBcMgMPbweIHt74ID62Gxj1I/PUYJ07nlfoVJ07nkfjrMfvUKyIiVZLW+FSy3iFBRLYI1JubL1XmAfh2Ch7bPsQXA8PDC1P4aOg2Fqr/NU249rejZfq6tb8dJaJJ7cqqVkREqjgFHzswe5j0yHp5nTkBP70MifFgPYsJyKh/E77RL2Gu3fi84UYZZ7DKOk5ERFyTgo9ULfm5sPEd29NaZzJs566NwHrzRPYeMdP6AjuoX+HjVaavL+s4ERFxTQo+UjUUFMD2xfDdC3D8d9u52s0g8l/QtJft+pGtF/z4yTOlr+8p7zgREXFNCj7iWIYByZ/Dd1MgfaftXM16cNOz0HoomMv2t6jJVLY1U2UdJyIirknBRxzDMODXb+DbF+DQFtu5ar4Q8Qh0iIFqNcv1dZ0aX8lr36WUaZyIiLgvBR+xvz/WwreT4Y/VtmOvGtDxIej8CPj4X9JXdmx0JX7VvUp9pN2/uhcdGyn4iIi4MwUfsZ9DW2x3eFK+th2bq0H7+6HLE1CzzmV9tdnDxOB2V/PWqr0XHHNnu6v1GgERETen4COV79BWWPUiJC+zHXt4QthQ6DYOfK+qkB9hLTD4bFvpW1J8ti2Vcb2vV/gREXFjCj5SeQ5stD2WvufLP0+YoNVguPEpCGhUoT9q/d4MUjNL3+k+NTOH9XsztM5HRMSNKfhIxftjLaz6N/z6re3Y5AGhg6Drk1CnWaX8yLSTpYee8o4TERHXpOAjFcMw4Pef4IcZ8PuPtnMmM9xwN3R9Aq48/23LFSnj1NkKHSciIq5JwUcuT+Fj6av+A/vW2s55eEHYEOjyOFzgTcsVLaCGd4WOExER16TgI5fGmg87lsLqV+Bwku2c2RvaDIeIf4LfNXYtJ9DXp0LHiYiIa1LwkfLJzYbN/4W1r0PmPts5r+p/Bp5H4Yr6DikrvGEAQb6WUhc4B/laCG8YcMHrIiLi+hR8pGxOHYH1b8OGOXDmuO1c9drQ4SHbu3iqOzZQmD1MxEW1IGb+ZkragN0ExEW10KPsIiJuTsFHSpfxm+3uzpb5kP/n3ZSARtDpYWh9D3hVnamj3iFBxA9tw6SEncXu/AT5WoiLakHvkCAHViciIlWBgo+czzBg7ypY9xbsWg6F91Dqt4Euj0Hz28DD7MgKL6h3SBCRLQJZvzeD9Kwc6tayTW/pTo+IiEAVDT7Lly9nzJgxVKtWrehcz549efHFF9m2bRsvvPACKSkp+Pv7ExMTw6BBg4rGLV26lDfeeIMjR47QqFEjnnvuOcLCwhzRhvPJOwM//88WeNJ3/HU+ONK2YPm6LuAEu5ubPUx6SaGIiJSoSgafpKQk+vfvz7Rp04qdz8zM5IEHHuDRRx9l8ODBbNiwgdjYWJo1a0arVq1Yt24dkydPZs6cObRq1YoFCxYQExPDd999h49P1ZmSqXIyD8CGubDp/b/W73jVgNZ3Q/iDUKepQ8sTERGpKB6OLqAkSUlJhISEnHd+5cqV+Pn5MWTIEDw9PenUqRNRUVEsWLAAgIULF9K3b1/atm2Ll5cXI0aMwN/fn+XLl9u7harPMGBfIiwcAbNawU8v20KPXwO4ZQo8sRP6vqTQIyIiLqXK3fEpKChgx44d+Pj4MHfuXKxWK927d2fMmDHs2bOHpk2L/4c4ODiYRYsWAZCSksKAAQPOu56cnFyuGqxW6+U1YWeF9Zap7pyTmJL+h2nz+5jSdxadNq7tQkH4g9C091/rd6rQX4dy9ejE1KdrUZ+uxR36dNYey1NvlQs+GRkZtGjRgl69ejF79myOHz/OU089xdixY6lTp855U1YWi4XTp08DkJ2dXer1skpKSrq8JhyktLqrn9hFnT8S8D/4LR5W2xNPBR7eZFzdk/SGd3DmisaQA/xctXt31t9NealP16I+XYs79OnKPVa54FO7du2iqSsAHx8fxo4dy5133kl0dDQ5OcVfUJeTk0ONGjWKxpZ03d/fv1w1hIaGYjZXzaeWSmK1WklKSjq/7rNZmHYsxrTpA0xp24pOG7WbYrQdiRE6GH8fP8r3V8cxLtiji1GfrkV9uhZ36NNZeyysuyyqXPBJTk5m2bJlPPnkk5j+fIIoNzcXDw8PWrVqxQcffFBsfEpKCk2aNAGgSZMm7Nmz57zr3bp1K1cNZrPZqX7hhcxmM2YPDzi0Bbb81/aEVu6pPy96Q4vbod1ITA06Ff21dTbO+rspL/XpWtSna3GHPl25xyq3uNnPz48FCxYwd+5c8vPzOXToEC+++CJ33HEHvXr14ujRo7z//vvk5eWRmJhIQkJC0bqegQMHkpCQQGJiInl5ebz//vscO3aMyMhIB3dV+TxzMjCtfRXe6ARzboKN79pCz5XBcMsL8EQyDJgD13Z2ikfSRUREKkOVu+MTGBjIW2+9xcyZM4mPj6datWr07duXsWPHUq1aNd59912mTJnC7NmzCQgIYMKECXTs2BGATp06ERcXx8SJEzl8+DDBwcHMmTMHPz8/xzZVWfLPwq4v8Ni6gFYpX2MyCmznPS3QvC+0HQHXdVXQERER+VOVCz4A4eHhfPTRRyVeCw0NveA1gP79+9O/f//KKs3xDAMObYat/wdJiyDnBIWxxri6PabWQ6DlHeDj58gqRUREqqQqGXykBEf3wPbFtj9Hd/91/oqrKAi9k53eN3B9l34uOycrIiJSERR8qrIT+2D7Eti+CNLOWa3uaYHro2ybhDbsjmHA2a1bHVamiIiIs1DwsQNrgVH2TTOzDsPOT2x3dvav++u8hyc07gEhA6BZH7Bccc4PcK4XTYmIiDiKgk8lW7E9lUkJO0nN/Ov9QkG+FuKiWtA7JMh2IvMAJH8OvyTAH6uhcJEyJtvGoCED4Pp+UEMbb4qIiFwOBZ9KtGJ7KjHzN2P87XxaZg7/WZBAozYHaXr8B9t7d851VTtb2Gl5B1wRZLd6RUREXJ2CTyWxFhhMSth5TugxuMH0K73MG+nlsYHGHqmwo/CaCa7pANffBs1vg4CGDqlZRETE1Sn4VJL1ezOKprdqcIZF3hO53mN/0fVcw8yaghCu6XwnjbsMglr1HFWqiIiI21DwqSRpJ/9a01ONPK4yHSXbqMZ3Ba1ZaW3PdwWtyaI6Lwe2prFCj4iIiF0o+FSSo1lni/53BlcQfvYNCvAgF68LjhMREZHKpeBTSQ5nnS52nEO1Mo0TERGRylPlNil1FYm/ZlToOBEREbl8Cj6VJDu3bC8VLOs4ERERuXwKPpWkvq9PhY4TERGRy6fgU0ke6NqoQseJiIjI5VPwqSSdgmtX6DgRERG5fAo+lWTD72VbtFzWcSIiInL5FHwqydpfj1XoOBEREbl8Cj6V5u9bk17uOBEREblcCj6VpFOjMq7xKeM4ERERuXwKPpWkY+Mr8avuVeoYv+pedGx8pZ0qEhEREQWfSmL2MDE9OrTUMdOjQzF7mOxUkYiIiCj4VKLeIUG8ObQNgVcU36cr8IpqvDm0Db1DghxUmYiIiHvSJqWVrHdIEJEtAlm/N4P0rBzq1rIQ3jBAd3pEREQcQMHHDsweJjppLY+IiIjDaapLRERE3IaCj4iIiLgNBR8RERFxGwo+IiIi4jYUfERERMRtKPiIiIiI21DwEREREbeh4CMiIiJuQy8wPIdhGABYrVYHV1I+hfU6W93l4Q49gvp0NerTtbhDn87aY2G9hf8dL43JKMsoN5Gbm0tSUpKjyxAREZFLEBoaire3d6ljFHzOUVBQQH5+Ph4eHphM2ktLRETEGRiGQUFBAZ6ennh4lL6KR8FHRERE3IYWN4uIiIjbUPARERERt6HgIyIiIm5DwUdERETchoKPiIiIuA0FHxEREXEbCj4iIiLiNhR8qrDk5GRGjhxJeHg4ERERjBs3joyMDAC2bdvGoEGDCAsLo0ePHixcuLDYZ5cuXUpkZCStW7cmOjqaLVu2OKKFcrFarQwbNoynn3666Jwr9XnixAnGjRtHhw4daN++Pf/4xz9IT08HXKvPHTt2MGTIENq1a0eXLl144YUXyM3NBVyjz4yMDCIjI1m3bl3Rucvpy2q1MmPGDDp37kxYWBgxMTFFf184Ukl9fvnll/Tv3582bdrQo0cPXnvtNQoKCoquu0qfhdLT0+ncuTNLliwpdt7Z+iypx+TkZIYPH05YWBidO3dm2rRp5OfnF113th7LxZAq6cyZM0ZERITxyiuvGGfPnjUyMjKM0aNHGw8++KBx4sQJIzw83Jg/f76Rl5dnrFmzxggLCzO2bdtmGIZhJCYmGmFhYcbGjRuN3Nxc47333jM6dOhgnD592sFdlW7WrFlG8+bNjaeeesowDMPl+hw6dKgRGxtrZGZmGllZWcbDDz9sPPDAAy7Vp9VqNSIiIowPPvjAsFqtRmpqqtGrVy/jtddec4k+N27caPTs2dNo2rSpkZiYaBjG5f99+uqrrxpRUVHGoUOHjKysLOOxxx4zRo8e7bAeDaPkPpOSkoxWrVoZ3377rWG1Wo2UlBTjpptuMt555x3DMFynz0JWq9UYNmyY0bx5c2Px4sVF552tz5J6PHbsmNGhQwfjzTffNHJzc439+/cbt9xyizF37lyn7LG8FHyqqF9//dW4//77jfz8/KJzX3/9tdGmTRvjf//7n3HLLbcUG//8888b48aNMwzDMJ588kljwoQJxa737t3bWLRoUeUXfonWrFlj9OnTx3j00UeLgo8r9ZmUlGSEhoYaWVlZReeOHz9u7N6926X6zMjIMJo2bWq89957Rn5+vpGammrceuutxjvvvOP0fS5ZssS48cYbjc8//7zYf0Qut69u3boZn332WdG1I0eOGM2aNTP27dtXme1c0IX6XLFihTF16tRiY6dOnWo89NBDhmG4Tp+FZs+ebYwdO9a46aabigUfZ+rzQj2+8847xuDBg4uNPXDggHHw4EHDMJyrx0uhqa4qqlGjRsydOxez2Vx07ssvv6Rly5bs2bOHpk2bFhsfHBxMcnIyACkpKaVer2qOHTvG+PHjeemll/Dx8Sk670p9/vzzzwQHB/O///2PyMhIunTpwowZM6hTp45L9env78+IESOYMWMGoaGhdO/eneuuu44RI0Y4fZ9dunThq6++ok+fPsXOX05fWVlZpKWlFbteu3ZtfH192bVrVyV1UroL9dmrVy+eeeaZouOcnBy+//57WrZsCbhOnwCJiYl8/vnnxMXFnXfNmfq8UI8///wzTZs25fnnnyciIoKePXvy2WefERgYCDhXj5dCwccJGIbByy+/zHfffcf48ePJzs4uFhAALBYLp0+fBrjo9aqkoKCAsWPHMnLkSJo3b17smiv1mZmZya5du/j9999ZunQpn3zyCYcPH+app55yqT4LCgqwWCw899xzbN26lWXLlvHrr78ye/Zsp++zTp06eHp6nnf+cvrKzs4GoHr16uddL7xmbxfq81ynTp0iNjYWi8XCiBEjANfp89ixYzz77LP85z//oUaNGuddd6Y+L9RjZmYmS5YsoVWrVnz//fe89tprfPzxx7z33nuAc/V4KRR8qrhTp07x6KOPkpCQwPz582nWrBk+Pj7k5OQUG5eTk1P0D+nFrlclb731Ft7e3gwbNuy8a67Up7e3NwDjx4+nZs2a1K5dm8cee4wffvgBwzBcps+vvvqKL7/8knvuuQdvb2+aNGlCbGwsH374oUv9Ps91OX0V/sflzJkzF/x8VfPbb79x1113kZ+fz7x586hZsybgGn0ahsG4ceMYNmwYISEhJY5xhT69vb0JDQ1l4MCBeHl50bx5c4YOHcoXX3wBuEaPpVHwqcL27dvHgAEDOHXqFIsWLaJZs2YANG3alD179hQbm5KSQpMmTQBo0qRJqderkk8//ZT169fTrl072rVrx7Jly1i2bBnt2rVzqT6Dg4MpKCggLy+v6Fzh0zDXX3+9y/SZmppa9ARXIU9PT7y8vFzq93muy+nL19eXevXqkZKSUnTtyJEjnDhx4ryphqrghx9+YNCgQXTt2pV33nkHX1/fomuu0Gdqairr16/n9ddfL/p30qFDh5g0aRIPPvgg4Bp9Nm7c+Lx/TgsKCjAMA3CNHkvl2CVGciEnTpwwbrzxRuPpp582rFZrsWsZGRlGu3btjPfee8/Izc011q5da4SFhRlr1641DMMoeqpk7dq1RSvy27dvbxw/ftwBnZTPU089VbS42ZX6zM3NNSIjI41HHnnEOHXqlHHs2DHj3nvvNWJjY12qzz179hghISFGfHy8kZ+fb+zbt8+47bbbjOnTp7tUn+cuFL3cvl5++WXjtttuM/bt21f0hMzQoUMd1Vox5/a5ZcsWo2XLlsbChQtLHOsqff7d3xc3O2uf5/aYkpJihISEGG+//baRn59vJCcnG127djU++OADwzCct8eyUvCpot59912jadOmxg033GC0bt262B/DMIyff/7ZGDx4sBEWFmbcfPPNxf7BNAzD+OSTT4xevXoZrVu3NgYOHGhs3brVEW2U27nBxzBcq8+0tDTjscceMyIiIox27doZ48aNMzIzMw3DcK0+V69ebQwaNMho27atceONNxozZ840zp49axiG6/T59/9QXk5fubm5xosvvmh07drVaNOmjRETE2McPXrUbr2U5tw+H3zwQaNZs2bn/fvo/vvvLxrvCn3+3d+Dj2E4Z59/73Hr1q3GPffcY7Rr187o0qWL8frrrxsFBQVF152xx7IyGcaf97ZEREREXJzW+IiIiIjbUPARERERt6HgIyIiIm5DwUdERETchoKPiIiIuA0FHxEREXEbCj4iIiLiNhR8REQqyNmzZ0lLS3N0GSJSCgUfEak0hw4dIi4ujh49etC6dWvCw8O5//77Wb16damfGzVqFG+++eYFrzdr1ox169Zd8PrJkycZMGAAJ0+evOTaC4WFhbFx48Yyjb3nnntYs2bNRcft27ePe+65p9jebSJiHwo+IlIpdu/eTb9+/cjNzWXOnDls2rSJlStX0q9fP2JjY/nhhx8u+Nm5c+fy0EMPXfLPnjx5MnfeeSdXXHHFJX9HoS1bttCuXbsyjT1+/HiZxjVo0ID27dvzxhtvXE5pInIJFHxEpFI8//zzREREMG3aNBo3bozZbMbPz4/+/fsTFxdXdLdjyZIlREdHc99999GuXTsSEhIYNmwYr776KgB5eXlMmzaNDh060LFjR+bOnVvqz929ezc//PADd9xxR9H333nnnTz//PO0adOGLl268MYbbxTtRJ2Tk8O///1vunfvTvv27Rk2bBg///xz0fede3epR48evPXWW9x+++2EhYVx++23k5iYCMB9991XdIfrX//6F/n5+UycOJGIiAg6dOjAPffcw6ZNm4q+95577uGDDz4gIyOjgv6Ki0hZKPiISIVLS0tjy5Yt3HXXXSVev+OOO+jZs2fR8Y4dO4iKimLNmjVERkYWG/vGG2/w/fffs2jRIr799lt2795d6s/+8MMP6dmzJ97e3kXntm3bho+PD2vXriU+Pp4PPviARYsWATBx4kR++ukn5s2bx+rVq+nZsycjRozg0KFDJX7/4sWLeeWVV1izZg3Nmzdn4sSJALz77rvUr1+fSZMm8fzzz/Ppp5+yZcsWvvjiC9asWUP79u2ZNGlS0ffUq1ePkJAQli5dWmo/IlKxFHxEpMIVLvANDAwsOrd27VratWtHu3btCAsLo1evXkXXvLy86N+/P97e3lgslmLf9emnn3L//fdzzTXXUL16dSZMmIDJZLrgz05MTCQsLKzYOT8/P8aMGUO1atUIDQ1l8ODBfPbZZ5w9e5Zly5bx5JNPcu211+Lt7c3w4cNp1KgRy5YtK/H7Bw4cyLXXXouPjw9RUVH8/vvvJY6zWCwcOHCARYsWsXfvXv75z3/y2WefFRsTFhbG2rVrL9iLiFQ8BR8RqXB16tQB4PDhw0XnOnXqxMaNG9m4cSPPPfdcsYW9derUwcOj5H8dpaenExQUVHR8xRVX4Ovre8GfnZqaSr169Yqdu+qqq/Dy8io6DgoKIj09nczMTPLy8rj66quLjb/66qs5cOBAid9fu3btov/t6elZNGX2d3379uW5557jm2++4fbbb+emm27iww8/LDYmMDBQT4GJ2JmCj4hUuKuuuorQ0FAWLlxYpvGl3cEJDAxk//79RcenT58mKyur1O/6exhJT08vdu7AgQPUr1+f2rVrU61atWLfD7anrurWrVum2i9k7969tGzZkgULFrBx40Yef/xxJk6cyJ49e4rGWK3WCwY+Eakc+idORCrF1KlT+fHHH3nuuefYu3cvhmFw6tQpPvnkE1599dUyB4tBgwYxd+5cfv31V86ePcv06dOxWq0XHH/VVVcVu9MEcOTIEd5++23y8vL4+eefWbhwIYMGDcLDw4MBAwYwc+ZM/vjjD3Jzc/nggw9ISUmhb9++5e7Z29u7KJR99913PPzwwxw4cACLxYKfnx+enp7UqlWraHx6ejr169cv988RkUvn6egCRMQ1NW3alGXLljFnzhweeughjhw5gslkolmzZowaNYpBgwaV6XtGjx7NmTNnGDp0KPn5+dx55534+fldcHxERASbNm3izjvvLDpXp04dDhw4QJcuXahRowb//Oc/6dOnDwDjxo3j1VdfZcSIEZw4cYJmzZrxzjvv0LBhw3L3PHDgQF5++WWSkpKYPn06hw8f5q677uLUqVNcddVVvPzyy8XWPW3atKmoDhGxD5NxoQlqEREnlJyczPDhw/nhhx+wWCwsWbKE1157jW+//dbRpRWTlpZGVFQUX375JQEBAY4uR8RtaKpLRFxK8+bN6dq1K0uWLHF0KaWaN28ew4YNU+gRsTMFHxFxOePHj2fhwoVkZmY6upQS7du3j82bN1/W26lF5NJoqktERETchu74iIiIiNtQ8BERERG3oeAjIiIibkPBR0RERNyGgo+IiIi4DQUfERERcRsKPiIiIuI2FHxERETEbSj4iIiIiNv4f965t4FaULEkAAAAAElFTkSuQmCC\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "experiment_result = {'grid': [], 'n_iter': [], 'rmse': [],'nrmse': [], 'time': []}\n", - "for grid in range(10,50,10):\n", - " for n_iter in range(10):\n", - " test = test_data[test_data['grid'] == grid]['interpolated_values_u'].values\n", - " result = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['u'].values\n", - " rmse = np.sqrt(np.mean((test - result) ** 2))\n", - " nrmse = rmse / np.std(result)\n", - " time = experiment_data.query(f'n_iter == {n_iter} and grid == {grid}')['time'].values[0]\n", - " experiment_result['grid'].append(grid+1)\n", - " experiment_result['n_iter'].append(n_iter)\n", - " experiment_result['rmse'].append(rmse)\n", - " experiment_result['nrmse'].append(nrmse)\n", - " experiment_result['time'].append(time)" + "plt.plot(data['grid']*data['grid'], data['time'], marker='o', linestyle='')\n", + "plt.plot(xnew,f(xnew))\n", + "plt.xlabel('Grid (points)')\n", + "plt.ylabel('Time (s)')\n", + "plt.savefig('schrodinger_cache_false_time.png', dpi=150)\n", + "## schrodinger cache = True\n" ], "metadata": { "collapsed": false @@ -280,10 +351,11 @@ }, { "cell_type": "code", - "execution_count": 209, + "execution_count": 27, "outputs": [], "source": [ - "data = pd.DataFrame(experiment_result)" + "h = np.sqrt(data['rmse_v']**2 + data['rmse_u']** 2)\n", + "h_mean = list(set(h))" ], "metadata": { "collapsed": false @@ -291,31 +363,10 @@ }, { "cell_type": "code", - "execution_count": 210, - "outputs": [ - { - "data": { - "text/plain": "" - }, - "execution_count": 210, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": "
", - "image/png": "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\n" - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 39, + "outputs": [], "source": [ - "fig, axes = plt.subplots(1, 2)\n", - "\n", - "sns.boxplot(ax=axes[0],x='grid', y='time', data=data , showfliers=False)\n", - "\n", - "sns.boxplot(ax=axes[1],x='grid', y='rmse', data=data, showfliers=False)\n" + "from scipy import interpolate" ], "metadata": { "collapsed": false @@ -323,17 +374,14 @@ }, { "cell_type": "code", - "execution_count": 233, + "execution_count": 79, "outputs": [], "source": [ - "x_grid = np.linspace(-5,5,256)\n", - "t_grid = np.linspace(0,np.pi/2,201)\n", - "\n", - "x = torch.from_numpy(x_grid)\n", - "t = torch.from_numpy(t_grid)\n", - "\n", - "grid_test = torch.cartesian_prod(x, t).float()\n", - "# model_interp = test_data[test_data['grid'] == 10]['interpolated_values_u'].values" + "x1 = [11**2,21**2,31**2,41**2,51**2]\n", + "y1 = h_mean\n", + "tck = interpolate.splrep(x1,y1,s=5, k= 3)\n", + "xnew1 = np.linspace(11**2, 51**2)\n", + "yfit = interpolate.splev(xnew1, tck,der=0)" ], "metadata": { "collapsed": false @@ -341,30 +389,30 @@ }, { "cell_type": "code", - "execution_count": 237, + "execution_count": 82, "outputs": [ { "data": { - "text/plain": "" + "text/plain": "Text(0, 0.5, '$RMSE_h$')" }, - "execution_count": 237, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "
", - "image/png": "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\n" + "image/png": "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eR1uTp06pWuuuca9vXbtWl133XXavHmzPvroI910001aunRpoxQJAADgLa/DTXR0tI4fP+7e/vjjjzVkyBDZbDa1bt1aDz30kP72t781SpEAAADe8jrc3HrrrXrllVckSV999ZW++OIL9enTx72/U6dOOnbsmP8rBAAA8IHXn5aaNGmS7r77bqWlpencuXOKjo5WcnKye39ZWZkcDkejFAkAAOAtr8NNVFSUcnNz9eqrr6qiokL333+/x437tm/frtjY2MaoEQAAwGs+3cSvY8eOmj59ep37CgsLlZ6e7peiAAAA6svrcLN48WJ16dJF3bp1U1RU1EX7f/e73/m1MAAAgPrwOty88MIL7tNQV199tbp27aouXbqoa9eu6tq1qzp27NhoRQIAAHjL63CTmJio48ePa/To0YqMjNS+ffv00Ucf6U9/+pNcLpfatWunrl276uWXX27MegEAAC7L63Dz1ltvafXq1Xr22WfVpUsXPfHEE7r++utVXV2tAwcOaN++fdq3b19j1goAAHBFPl1QPHr0aKWnp+uFF17QmDFjdM8992jy5Mnq1q2bunXr1lg1AgAAeM3rm/jVatOmjR577DGtXr1ahw4d0qBBg5Sbm9sYtQEAAPjM53AjSdXV1Tp79qyGDh2qa665RjNnzlR5ebmfSwMAAPCd16el/vCHP+jgwYM6ePCgDh8+LLvdroSEBPXo0UP33HOP2rZt25h1AgAAeMXrcLNo0SJ17NhRo0aN0vDhw7kbMQAACEpeh5vk5GTt379fzz//vJYtW6aEhAT3vW66deumzp07y2azNWatAAAAV+R1uFm1apUk6fDhw9q7d6/7a/369aqoqFDr1q0VHx/PxcUAAKBJ+fRRcEmKjY1VbGyshg0b5h47evSoPv/8c33xxRd+LQ4AAMBXPoWbr776SocOHVJ8fLw6dOjgHo+JiVFMTIx69erl9wIBAAB84XW4Wb9+vR5//HG5XC796Ec/0pw5c3T33Xfrq6++0oYNG/T+++9r79693KUYAAA0Ka/DzZIlS3T//fdr7NixevbZZzVnzhwdOnRIS5cuVadOndSnTx898sgjjVkrAADAFXkdboqLi/XLX/5SHTt21OzZs3XHHXdo9+7dysvLU1xcXGPWCAAA4DWv71DsdDoVHh4uSYqOjlZ4eLgef/xxgg0AAAgqPv36hby8PBUV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Q68Dpzn0urZGbwTFNTedO3dWeXm5SktL3WNFRUWKjo5W27ZtPebGx8eroKDAY6ywsFCdO3f26rUsy2p4wQAAoEl483M8xAqSn/b33nuvoqOjNXfuXH377beaNGmS0tPTNWXKFI95RUVFGjVqlBYsWKBBgwbpvffe0/Tp0/X222/r+uuvv+LrnD9/3phlNwAAWprExES1bt36snOCJtyUlpZq7ty52rFjh0JDQ3X33XfrP/7jP2Sz2ZSUlKQ5c+borrvukiRt3bpVCxcuVHFxsTp27KisrCz16+fdr1KvqamR0+lUaGioQkJCGvMtAQAAP7EsSzU1NQoLC1No6OVPPAVNuAEAAPCHoLjmBgAAwF8INwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARmlR4aasrEwZGRlKSUlRamqq5s+fL6fT2dRlNUvvvPOOunTpoqSkJPdXVlaWJOkf//iHxo0bp6SkJPXv319vvfWWx2PXrFmjgQMHqmfPnho9erR2797dFG8h6J04cUIDBw7Ujh073GMN6a3L5dLTTz+tW2+9VUlJSZo0aZK++eabgL2fYFZXr2fPnq1u3bp5HONvvPGGez+99s3+/fv1r//6r+rdu7f69Omjxx57TCdOnJDEce1vl+t1izmurRbk/vvvt6ZNm2ZVVlZaxcXF1rBhw6ylS5c2dVnN0oIFC6zp06dfNF5eXm717t3bWrlypVVdXW19/PHHVlJSkvWPf/zDsizL2r59u5WUlGTt2rXLOn/+vPXKK69YqampVmVlZaDfQlDbtWuXNWDAACs+Pt7avn27ZVkN7+3ixYutESNGWCUlJdapU6eszMxMa+LEiU32HoNFXb22LMsaNWqUtXr16jofQ699U1VVZfXp08datGiRde7cOevEiRPWxIkTrYcffpjj2s8u12vLajnHdYsJN4cPH7bi4+OtY8eOucc2bNhg3XHHHU1YVfN13333WStXrrxo/M0337QGDRrkMTZr1izrsccesyzLsqZNm2b99re/9dg/ePBgKzc3t/GKbWZWr15t3XHHHdaGDRs8fuA2tLe33367tW7dOve+48ePWwkJCVZxcXFjvp2gdqlenzt3zuratat18ODBOh9Hr31TVFRkPfjgg5bT6XSPffDBB1avXr04rv3scr1uScd1izktVVBQoIiICEVFRbnH4uLi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3323bDab+vXrp/bt21/yIuLw8HDl5uZq27ZtiouL0yeffKLu3bv7VDcA/yLcAKi39u3bS5K+/vpr99hPf/pT7dq1S7t27dLMmTPdp6Vq54eG1v3PzjfffKNrrrnGvd2uXTtdddVVPtXzk5/8xP3na6+9VpJ0/PhxlZWVKSYmxmPuddddp6+++uqy76tWq1atVFNTc9G88PBwvfbaa6qpqdG0adN088036/HHH9fJkyd9qhuAfxFuANRbx44dlZiYqLfeesur+ZdbiYmOjtbRo0fd25WVlTp16pRP9Xw/ZNV+Qunaa69Vx44dVVxc7DH36NGjF4UYX50+fVrffPONfv/73+vjjz/WG2+8oc8///yynwAD0PgINwAaJDs7W1u3btXMmTN16NAhWZal06dPa+3atVq8eLE6dOjg1fOMGzdOy5YtU1FRkc6dO6cFCxbI5XL5VMsLL7yg48ePq6KiQk8//bT69u2rqKgojRkzRn/961/17rvvyuVyad++fVq6dKnGjBnj8/v90Y9+pNOnT8uyLJ05c0YTJ05UXl6eLMtShw4dFBoaqquvvtrn5wXgP4QbAA0SHx+v9evXKzw8XI888oiSk5PVr18/vfnmm5owYcIlL9r9oYkTJ+quu+7S/fffr9tuu01t27ZVRESET7V07dpV9957r/r376927dpp4cKFkqQePXpo0aJFWrp0qVJSUjR58mT9/Oc/1yOPPOLr29Wdd96p8vJyJScny263KycnR0uXLlWvXr00fPhw3XLLLfqXf/kXn58XgP+EWJZlNXURAOCr/v37a/Lkye773CQkJGjFihVKTU1t4sq+8+WXXyotLU3/8z//o+uuu66pywFaDFZuAACAUQg3AJqt2bNn++UOxY1h/vz5Gj58eFOXAbRInJYCAABGYeUGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABjl/wFZqGqthOnefgAAAABJRU5ErkJggg==\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ - "fig = plt.figure()\n", - "ax = fig.add_subplot(111, projection='3d')\n", - "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", - " v, cmap=cm.jet,linewidth=0.2, alpha=1)" + "plt.plot(data['grid']*data['grid'], h, marker='o', linestyle='' )\n", + "# plt.plot(xnew1,yfit)\n", + "plt.xlabel('Grid [points]')\n", + "plt.ylabel('$RMSE_h$')" ], "metadata": { "collapsed": false @@ -372,37 +420,60 @@ }, { "cell_type": "code", - "execution_count": 216, + "execution_count": 81, "outputs": [ { "data": { - "text/plain": "array([ 0.02695056, 0.03260382, 0.03420716, 0.03475574, 0.03492699,\n 0.034309 , 0.03360063, 0.03225105, 0.03112513, 0.02763927,\n 0.02636017, 0.07295037, 0.07319679, 0.069523 , 0.06700413,\n 0.06497201, 0.06289575, 0.06013422, 0.05698216, 0.05429713,\n 0.05016175, 0.04734092, 0.19711746, 0.1959615 , 0.19299055,\n 0.19102151, 0.1856891 , 0.17916657, 0.17192488, 0.16365532,\n 0.15508521, 0.14466002, 0.13431266, 0.52562333, 0.51784725,\n 0.49690626, 0.47210287, 0.44857975, 0.43657531, 0.4349855 ,\n 0.43444197, 0.42871452, 0.40757898, 0.37171966, 1.28071124,\n 1.19795536, 0.97999627, 0.71583666, 0.52882028, 0.52176611,\n 0.69010228, 0.92236583, 1.08294288, 1.08007742, 0.90557495,\n 1.99958073, 1.76528341, 0.98348639, -0.58226342, -2.94717013,\n -3.68001601, -0.72895298, 1.52340548, 2.18368684, 2.02259221,\n 1.41672212, 1.31929761, 1.22996009, 0.99357603, 0.70483754,\n 0.4996009 , 0.49408717, 0.68434882, 0.94443911, 1.12189913,\n 1.11994926, 0.93233271, 0.54579459, 0.53729191, 0.51428934,\n 0.48712315, 0.46181896, 0.44922325, 0.44867047, 0.44995444,\n 0.44506521, 0.42373231, 0.3863336 , 0.20492919, 0.20358779,\n 0.20035814, 0.19838182, 0.1929824 , 0.18638219, 0.179006 ,\n 0.17072315, 0.16164543, 0.15096439, 0.14012327, 0.0758565 ,\n 0.07634097, 0.07252998, 0.06995601, 0.0676208 , 0.0653251 ,\n 0.06267691, 0.0591192 , 0.05621535, 0.05225826, 0.0491113 ,\n 0.02802405, 0.03258097, 0.0342325 , 0.03482958, 0.03496365,\n 0.034333 , 0.03373345, 0.03231509, 0.03101465, 0.02774415,\n 0.02632516])" + "text/plain": "" }, - "execution_count": 216, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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Jk6cGD/84Q+P2GvpqtavXx9f//rX46STTopTTjklrr766njzzTfb79vf/wcPP/xwnHXWWTFs2LD4m7/5m3j++ec7bb+77AsRcoh+97vfxYUXXhgvv/xy+9i6devi6quvjilTpsSqVavijjvuiMWLF8f8+fPb5+zcuTNmzZoVs2bNSrDq7qmhoSFWrVrVabytrS2uuuqq2Lp1a6f77IfC2rFjR4wfPz6OO+64+Ld/+7dYuHBhPPHEE9HY2BhvvvlmXHrppXHyySfHihUr4sEHH4xnn3027rnnnvbH2x+Hbl/fkw70tX/ggQfimWeeiYceeihWrlwZ55xzTlxxxRXx9ttvt2+jqakpvvGNb8QvfvGLI/6auprdu3fH+PHjo6amJv793/89fvazn0VLS0tce+21B9wXy5cvj5tuuilmzZoVK1eujNGjR8c3v/nNDn88tjvtCxFyCB5++OG46qqr4tvf/naH8T/+8Y9x0UUXxRlnnBFFRUVRVVUVZ511VqxcubJ9zpgxY+KNN96Ir3zlK0d62d3SsmXL4umnn47Pfe5zne67/fbbo3///nHcccd1us9+KKzf/e530dzcHNddd12Ul5fHRz7ykfjmN78Z999/fzzyyCMxaNCguOKKK6K0tDT+4i/+In784x/HF77whfbH2x+H5t2+Jx3oa79p06Zoa2uLtra2yOVykclkomfPnu2P/5//+Z+44IIL4pOf/GTU1NQc0dfUFTU1NcXQoUNjwoQJ0aNHj+jTp09ceOGFsXLlygPui4ceeii++MUvRm1tbZSWlsall14affr0iSeeeCIiut++ECGH4DOf+Uz84he/iHPOOafD+Nlnnx3XXHNN++3du3fHs88+Gx//+Mfbx37yk5/EbbfdFn379j1i6+2umpubY9q0aXHbbbdFWVlZh/t++9vfxs9//vO4/vrr9/lY+6Gw2traorS0NEpLS9vHMplMbNmyJX7zm9/ECSecENddd12ccsopceaZZ8Zjjz0W/fv3b59rfxyad/ue9MILL+z3a3/RRRfF7t274/TTT4/q6ur4/ve/H3PmzIkPfOADERFx7LHHxjPPPBOTJ0/usG/Zt49+9KNx5513RnFxcfvYkiVL4uMf//gB98VLL70UJ5xwQoftHX/88bF+/fqI6H77QoQcgmOPPTZKSvb/h4i3b98eEyZMiJ49e8all17aPv7n33h579ra2mLq1Knx9a9/PYYOHdrhvubm5rj22mvj1ltvjV69eu3z8fZDYQ0fPjx69uwZt912W+zatSv++Mc/xl133RURf9pXixcvjk984hPx7LPPRkNDQ/z0pz+Nu+++u/3x9sehebfvSW+99dZ+v/Z79uyJk046KZ588slYvXp1jB8/PiZPnhxvvPFGRER88IMfjN69ex/R19Jd5HK5mD17dvz617+OadOmHXBf7Nixo9MPUz179oydO3dGRPfbFyLkMNq0aVNcdNFF0draGvfee2988IMfTL2kbmfevHnRo0ePTm9izOVycfXVV8fFF18cJ554YqLVvf9UVFTEHXfcEb///e/j9NNPjylTpsT5558fEX96I111dXWMHTs2SktLY+jQofG1r30tnnzyybSLfh/o0aPHfr/2V199dZx22mnx0Y9+NHr27BkTJkyI3r17x1NPPZV45V3b9u3bY/LkyfH444/HggULYsiQIQfcF2VlZbF79+4O29m9e/e7/iDV1e3/x3jes+eeey6uvPLKGDduXHznO9854BkT3ptHH300Xn/99airq4uIaP+f95FHHonS0tL4/e9/H7fffntE/Okbwo033hhLliyJefPmJVtzd/bOO++0R3cmk4mIiPvuuy+OP/74OPHEEzv8tkZEtL8HgcOrqqpqv1/7pqameOeddzrcX1JS0i1O96fy8ssvx+WXXx4DBgyIRYsWxYc//OGIOPC+GDx4cGzYsKHD/S+99FKcdtppR2bhR5gzIYfBmjVrYsKECXHNNdfEd7/7XQFyGD311FOxevXqWLVqVaxatSrOPffcOPfcc2P9+vWxdu3a9vFVq1bFgAED4vrrrxcgh9lll10WixYtilwuF+vWrYu5c+fGJZdcEl/60pfixRdfjDvuuCOy2Wz893//dyxYsCDGjBmTesnd3oG+9iNHjowf/ehH8corr8SePXvinnvuiTfeeCPOOOOMxCvvmt5666245JJLYvjw4XHXXXe1B0jEgffF2LFj4/HHH4/f/va3sWfPnpg/f340NzfHWWedlerlHFaOjofB3Llzo7W1NWbMmBEzZsxoH6+trY0777wz4crg8OrRo0c0NjbGzTffHDNnzoy+ffvG5ZdfHuPGjYuIiAULFsQtt9wS//qv/xo9e/aMr3zlKz4P5Aioqqra79f+hhtuiNmzZ8dXv/rV2LVrVwwZMiTuuuuu6NevX+KVd02LFy+OpqamePLJJztd0nr++ef3uy8+/elPx/XXXx833HBDvPbaa3H88cfHHXfcEZWVlQleyeGXyTkXCgAk4HIMAJCECAEAkhAhAEASIgQASEKEAABJiBAAIAkRAgAkIUIAgCRECJDM+PHjY+7cue96/5AhQzr9nQ2g+/Cx7UAy/owBvL+JEKCg/uu//ituuummWL9+ffzlX/5lfP7zn4+HHnooJk6cGAsWLIjKysp44YUX4vrrr48HH3wwTjrppJg0aVLs2bMnbr311njkkUcik8nE+PHjU78U4DBzOQYomO3bt8f48ePjr//6r2P58uVxyy23xIMPPth+/3/+53/GeeedF//xH//R6a+CNjY2xrPPPhuLFi2KX/3qV/Hiiy8e6eUDR5gIAQrmV7/6VRQXF8ekSZOiR48eMWTIkA5nNEpLS2PMmDHRo0eP6NmzZ4fHPvroo3HZZZfFwIEDo7y8PP7hH/4hMpnMkX4JwBEkQoCC+d///d8YMGBAFBX9/28tAwcObP/3Y489tsN9f+7111+P4447rv12RUVFfOhDHzp8iwWSEyFAwQwYMCCampoil8u1jzU1NbX/+/7ObPTv3z9eeeWV9ts7d+6M//u//zs8CwWOCiIEKJiRI0dGLpeLuXPnxjvvvBObNm2Ku+6666Ae++UvfznuvPPO2LhxY7z99tsxa9asyGazh3nFQEoiBCiY8vLyaGxsjF/+8pdx0kknxZVXXhmnnHJKlJaWHvCxl19+eYwePTq+9rWvxWc+85no3bt3VFZWHv5FA8lkcn9+3hTgEGzdujU2bdoUtbW17WM/+clP4uc//3k88MADCVcGHI2cCQEKJpvNxiWXXBLPPfdcRES8+uqrcd9998UZZ5yReGXA0ciZEKCgnnnmmfjBD34Qr776alRUVMQFF1wQEydOjJISn40IdCRCAIAkXI4BAJIQIQBAEiIEAEhChAAASYgQACAJEQIAJCFCAIAkRAgAkMT/A930sS8zsv3jAAAAAElFTkSuQmCC\n" + }, + "metadata": {}, + "output_type": "display_data" } ], - "source": [], + "source": [ + "# fig, axes = plt.subplots(1, 3)\n", + "\n", + "sns.boxplot(x=data['grid']*data['grid'], y=h , showfliers=False)\n", + "# sns.boxplot(ax=axes[1],x='grid', y='rmse_u', data=data, showfliers=False)\n", + "# sns.boxplot(ax=axes[2],x='grid', y='rmse_v', data=data, showfliers=False)" + ], "metadata": { "collapsed": false } }, { "cell_type": "code", - "execution_count": 231, - "outputs": [ - { - "data": { - "text/plain": "array([0.02695056, 0.02827012, 0.0288274 , ..., 0.02668994, 0.02647879,\n 0.02632516])" - }, - "execution_count": 231, - "metadata": {}, - "output_type": "execute_result" - } + "execution_count": 50, + "outputs": [], + "source": [ + "num = 50" ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 51, + "outputs": [], "source": [ - "u" + "x_grid = np.linspace(-5,5,num+1)\n", + "t_grid = np.linspace(0,np.pi/2,num+1)\n", + "\n", + "x = torch.from_numpy(x_grid)\n", + "t = torch.from_numpy(t_grid)\n", + "\n", + "grid_test = torch.cartesian_prod(x, t).float()\n", + "# model_interp = test_data[test_data['grid'] == 10]['interpolated_values_u'].values" ], "metadata": { "collapsed": false @@ -410,9 +481,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 52, "outputs": [], - "source": [], + "source": [ + "V = experiment_data.query(f'n_iter == {6} and grid == {num}')['v'].values" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 53, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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jObpSJKETZs2YefOnRAEAZdeeinWr1+PCRMmjHj/d999h7a2Nnz55ZdIS0tDc3MzHn74YVRWVsZ9rETxxgBJRKQBR48exfLly9HX14dHHnlEXbaWJEld5hYEAZIkAYBa4NtkMsFgMKRsmIxsqSjLsroXVOnPPfRxJSs8AsCmTZuwfft2tLa2oqysDG1tbbBYLNizZ8+w4OtwOHD11VejubkZd911FwKBAJ577jkMDAzgzTffHLe9x+n8wQBJRHHndDrR0dGBv//97/B4PJg6dSoefPBBNDU1JXtomvHLX/4SX375JdauXYubb755xHskSYLL5YLD4YDL5YoKk7m5uTCZTCnTLWao0fpzf/311/D5fFiwYAHMZjNsNhsGBgag1+vR0NCQsD7yoihi9uzZWL16NZYtWwYAEAQBc+fOxTPPPIMlS5ZE3b9z5048++yz+Mc//qGGRavVinnz5uGVV17BnDlzEjJuonjhhhEiirsHHngAAwMD6OjogNlsxvbt27FixQrs2rULdXV1yR6eJixfvhy33HILFi9ePOo9aWlpKCwsRGFhISRJgiAIaph0Op1wOp0p0S1mJGlpaTCZTDCZTJAkCV6vF4IgYMuWLeju7sazzz6LCy+8EE1NTbjssstw8cUXJyw8AsA333yDwcFBzJ49W71mMpkwbdo0HD58eFiAnDNnDl544YURZxpdLlfcx0sUb5yBJKK4Onr0KBYtWoRXX30VM2fOBHByGfLKK6/EkiVLcN999yV5hKlPluWoMBkKhQAA6enpUTUZUyVMRrLZbNi9eze6urrwv//9D8DJvuMzZszAlVdeiYULF6Kqqiru49i3bx/uvfdefPnll8jOzlav33ffffD7/diyZctpv8aGDRvwxhtv4P3330dRUVE8h0sUd5yBJKK4KiwsxNatW3HRRRep13Q6HWRZ5kzMGNHpdMjPz0d+fj5kWYbb7VZrTbpcLrhcLk10izkbpaWluOaaa3DZZZfB7Xbjxx9/xIEDB3D48GH861//QmtrKy666CLcfffdmD9/ftzGobSmHDrrqdfrz+jn+E9/+hO2b9+ORx55hOGRxgUGSCKKK5PJhHnz5kVd27t3L44dO4af/exnSRrV+KXT6dSl4NraWng8HjVMCoIAQRCQlpYWVeBby2FyYGAA/f39yMjIwOzZs3H55Zfjlltugd1ux3vvvYd9+/bhn//8J9566624Bkhl1lEUxagZyEAgAIPBMOrnybKM3/72t3jxxRdx5513pmRNT6KRMEASUUJ99tlnWLt2LRYsWBDXF3w6GSaV/ZA1NTXwer2w2+1wOp1qKR2dTqeGyby8PE2FSYfDAZvNhoyMDDQ0NEQFN7PZjBtuuAE33HADvF5v3E9iV1RUADi5pF5bW6tet9lsaGxsHPFzgsEgHnnkEezZswdr1qzBihUr4jpGokRigCSihNm/fz9WrVqF6dOno6OjI9nDOa8oQdFoNKK6uhperzeqpaLH44FOp0NOTk5cWw+eKafTCavVivT0dEyZMuWUs3w5OTlxH09jYyNyc3Nx6NAhNUAKgoAjR46gpaVlxM9Zs2YNurq68Jvf/GbYIRuiVMcASUQJ8ec//xlPP/00Fi5ciPb29oSeoKVopwqTg4ODarcYo9GozmAmMky6XC709vYiPT0dDQ0NCQmIp5OVlYWWlha0t7fDbDajqqoKbW1tKC8vx8KFCxEOh2G329WOQbt27cI777yDNWvWYNasWejv71e/lnIPUSrjKWwiirvt27djw4YNWL58OdauXaupZVKK5vP51DCpHBwBxr6P9WhcLheOHz+OtLQ0NDQ0wGg0xu17xSocDqOjowO7du2C3+9Hc3MzHn/8cVRXV6O7uxsLFixAa2srli5diltvvRUff/zxiF9HuYcolTFAElFc/fDDD7j66qtx+eWXY/369VEfU1rYkTb5/X41THq9XvW60sc6Ly9vTGeSBUFAT08P0tLSMGXKFOTm5o7Z1yaiscUASURx9dJLL6Gzs3PEj1133XV49tlnEzwiOhuBQCBqmVsRax/r0bjdbnR3dyMtLQ319fV8Y0GkcQyQREQUE1EUow7gKJQ+1iaTKaZezx6PB93d3QCA+vp6mEymMR8zEY0tBkgiIjprwWAQDocDDodjxDB5ugMjg4ODsFgsAIC6ujrk5+fHfcxEdO4YIImIaEwEg0G4XC44HA643W4oLy9ZWVlRYVJpqRgZHidPnoyCgoJkDZ2IYsQASUREYy4cDsPpdMLhcEAQBDVMZmZmIi8vD3q9HlarFbIsY/LkySgsLEzyiIkoFgyQREQUV+FwGC6XC3a7HW63G5IkqR+bNGkSzGZzEkdHRGeDAZKIiBJGkiS1y0xBQQEqKyuTPSQiOgsMkEREREQUE7aDICIiIqKYMEASERERUUwYIImIiIgoJgyQREQJ9MMPP2DGjBnYtWtXsodCRHTWGCCJiBIkGAxi1apV8Hq9yR7KuCZJEjZu3Ii5c+di+vTpuPXWW3H06NFR73c4HHjwwQfR3NyM5uZmPPbYY/x/RHQaDJBERAnyu9/9DkajMdnDGPc2b96MHTt24KmnnsJrr70GnU6H22+/HaIojnj/ypUrYbFY8Morr2Djxo34+OOPsWHDhgSPmii1MEASESXA4cOH8dprr+G5555L9lDGNVEU8fLLL+Pee+/FvHnz0NjYiM7OTvT19aGrq2vY/Z9//jk++eQTtLa24sILL8ScOXPw5JNP4u2330ZfX18SHgFRamCAJCKKM0EQsGbNGjz66KOoqKhI9nDGtW+++QaDg4OYPXu2es1kMmHatGk4fPjwsPs//fRTlJSUoK6uTr02a9Ys6HQ6fPbZZwkZM1EqYoAkIoqzJ554Aj/5yU9w9dVXJ3so457VagWAYUG9tLQUvb29w+7v6+sbdm9WVhYKCgpGvJ+ITspI9gCIiMazt956C59++il2796d7KGcF3w+H4CTITCSXq+Hy+Ua8f6h9yr3BwKB+AySaBzgDCQRURy98cYbGBgYwOWXX44ZM2ZgxowZAID169djyZIlSR7d+JOdnQ0Aww7MBAIBGAyGEe8f6XBNIBBATk5OfAZJNA5wBpKIKI7a29vh9/ujri1atAgrV67E4sWLkzSq8UtZjrbZbKitrVWv22w2NDY2Dru/vLwc+/fvj7omiiKcTifKysriO1iiFMYZSCKiOCorK8OECROi/gGAoqIiVFVVJXl0409jYyNyc3Nx6NAh9ZogCDhy5AiampqG3d/c3Ayr1RpVJ1L53JkzZ8Z/wEQpijOQREQ0bmRlZaGlpQXt7e0wm82oqqpCW1sbysvLsXDhQoTDYdjtduTl5SE7OxvTp0/HzJkzcf/99+OJJ56A1+vF+vXrce2113IGkugUdLIsy8keBBER0VgJh8Po6OjArl274Pf70dzcjMcffxzV1dXo7u7GggUL0NraiqVLlwIABgYGsGHDBnz44YfQ6/W46qqr8Mgjj0Cv1yf5kRBpFwMkEREREcWEeyCJiIiIKCYMkEREREQUEwZIIiIiIooJAyQRERERxYQBkoiIiIhiwgBJRERERDFhgCQiIiKimDBAEhEREVFMGCCJiIiIKCYMkEREREQUEwZIIiIiIooJAyQRERERxYQBkoiIiIhiwgBJRERERDFhgCQiIiKimDBAEhEREVFMGCCJiIiIKCYMkEREREQUEwZIIiIiIooJAyQRERERxYQBkoiIiIhiwgBJRERERDFhgCQiIiKimDBAEhEREVFMGCCJiIiIKCYMkEREREQUEwZIIiIiIooJAyQRERERxYQBkoiIiIhiwgBJRERERDFhgCQiIiKimDBAEhEREVFM/h+DmmBXU94TCQAAAABJRU5ErkJggg==\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.plot_trisurf(grid_test[:, 0].detach().numpy().reshape(-1), grid_test[:, 1].detach().numpy().reshape(-1),\n", + " V, cmap=cm.jet,linewidth=0.2, alpha=1)" + ], "metadata": { "collapsed": false } From d185b4b0e226294df1029e71fd6321efff9aba45 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 17:21:47 +0300 Subject: [PATCH 199/225] Update index.rst --- docs/source/modules/index.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index a593dc55..3bbd197d 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -4,8 +4,7 @@ Modules This one contain everything about modules into TEDEouS .. toctree:: - :glob: - :maxdepth: 2 + :maxdepth: config points_type From 9399b9cf8ad8450558f05070bbcef282fabd57a2 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 17:21:58 +0300 Subject: [PATCH 200/225] Update index.rst --- docs/source/modules/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index 3bbd197d..4a7b6843 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -4,7 +4,7 @@ Modules This one contain everything about modules into TEDEouS .. toctree:: - :maxdepth: + :maxdepth: 1 config points_type From 24b33d77c0caeb6f66988802c43f9a4c3042005c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 18:57:21 +0300 Subject: [PATCH 201/225] Update solver.py --- tedeous/solver.py | 140 ++++++++++++++++------------------------------ 1 file changed, 49 insertions(+), 91 deletions(-) diff --git a/tedeous/solver.py b/tedeous/solver.py index 48f56e6a..853c68e1 100644 --- a/tedeous/solver.py +++ b/tedeous/solver.py @@ -15,18 +15,14 @@ def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: Prepares grid to a general form. Further, formatted grid can be processed by Points_type.point_typization for 'NN' and 'autograd' methods. - Parameters - ---------- - coord_list - list with coordinates. - mode - Calculation method. (i.e., "NN", "autograd", "mat") - - Returns - ------- - grid - grid in a general form + Args: + coord_list: list with coordinates. + mode: Calculation method. (i.e., "NN", "autograd", "mat"). + + Returns: + grid: grid in a general form. """ + if type(coord_list) == torch.Tensor: print('Grid is a tensor, assuming old format, no action performed') return coord_list @@ -54,19 +50,16 @@ class Solver(Model_prepare): """ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equation_NN, input_preprocessing.Equation_mat, input_preprocessing.Equation_autograd], - model: torch.nn.Sequential, mode: str, weak_form: None = None): + model: torch.nn.Sequential, mode: str, weak_form: Union[None, list] = None): """ High-level interface for solving equations. Args: - grid - array of a n-D points. - equal_cls - object from input_preprocessing (see input_preprocessing.Equation). - model - neural network. - mode - Calculation method. (i.e., "NN", "autograd", "mat"). + grid: array of a n-D points. + equal_cls: object from input_preprocessing (see input_preprocessing.Equation). + model: neural network. + mode: calculation method. (i.e., "NN", "autograd", "mat"). + weak_form: list of basis functions. """ super().__init__(grid, equal_cls, model, mode) self.weak_form = weak_form @@ -74,16 +67,14 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: """ + Setting optimizer. + Args: - optimizer: - optimizer choice (Adam, SGD, LBFGS). - learning_rate: - determines the step size at each iteration while moving toward a minimum of a loss function. + optimizer: optimizer choice (Adam, SGD, LBFGS). + learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. Returns: - optimizer - torch.optimizer object as is. - + optimizer: torch.optimizer object as is. """ if optimizer == 'Adam': if self.mode == 'NN' or self.mode == 'autograd': @@ -115,15 +106,12 @@ def solution_print(self, title: Union[str, None] = None, solution_print: bool = Visualizes the resulting solution. Args: - title - as is. - solution_print - draws a figure. - solution_save: - saves figure. - save_dir: - a directory where saved figure in. + title: as is. + solution_print: draws a figure. + solution_save: saves figure. + save_dir: a directory where saved figure in. """ + if save_dir == None: img_dir = os.path.join(os.path.dirname(__file__), 'img') if not (os.path.isdir(img_dir)): @@ -198,61 +186,35 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea High-level interface for solving equations. Args: - lambda_bound - an arbitrary chosen constant, influence only convergence speed. - verbose - more detailed info about training process. - learning_rate - determines the step size at each iteration while moving toward a minimum of a loss function. - eps - arbitrarily small number that uses for loss comparison criterion. - tmax - maximum execution time. - nmodels - ? - name - model name if saved. - abs_loss: Union[None, float] - absolute loss???. - use_cache - as is. - cache_dir - directory where saved cache in. - cache_verbose - more detailed info about models in cache. - save_always - ???? - print_every - prints the state of each given iteration to the command line. - cache_model - model that uses in cache - patience - if the loss is less than a certain value, then the counter increases, - when it reaches the given patience, the calculation stops. - loss_oscillation_window - - no_improvement_patience - - model_randomize_parameter - creates a random model parameters (weights, biases) multiplied with a given randomize parameter. - optimizer_mode - optimizer choice (Adam, SGD, LBFGS). - step_plot_print - draws a figure through each given step. - step_plot_save - saves a figure through each given step. - image_save_dir - a directory where saved figure in. - + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + verbose: detailed info about training process. + learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. + eps: arbitrarily small number that uses for loss comparison criterion. + tmax: maximum execution time. + nmodels: smth + name: model name if saved. + abs_loss: absolute loss. + use_cache: as is. + cache_dir: directory where saved cache in. + cache_verbose: detailed info about models in cache. + save_always: smth + print_every: prints the state of each given iteration to the command line. + cache_model: model that uses in cache + patience:if the loss is less than a certain value, then the counter increases when it reaches the given patience, the calculation stops. + loss_oscillation_window: smth + no_improvement_patience: smth + model_randomize_parameter: creates a random model parameters (weights, biases) multiplied with a given randomize parameter. + optimizer_mode: optimizer choice (Adam, SGD, LBFGS). + step_plot_print: draws a figure through each given step. + step_plot_save: saves a figure through each given step. + image_save_dir: a directory where saved figure in. + Returns: - model - neural network. - + model: neural network. """ - # prepare input data to uniform format + r = self.create_random_fn(model_randomize_parameter) - # use cache if needed if use_cache: self.model, min_loss = self.cache(cache_dir=cache_dir, nmodels=nmodels, @@ -265,7 +227,6 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea optimizer = self.optimizer_choice(optimizer_mode, learning_rate) if True: - # if not use_cache: min_loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) save_cache = False @@ -273,7 +234,6 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea if min_loss > 0.1 or save_always: # why 0.1? save_cache = True - # standard NN stuff if verbose: print('[{}] initial (min) loss is {}'.format(datetime.datetime.now(), min_loss)) @@ -286,16 +246,14 @@ def closure(): nonlocal cur_loss optimizer.zero_grad() loss = self.loss_evaluation(lambda_bound=lambda_bound, weak_form=self.weak_form) - loss.backward() cur_loss = loss.item() return loss stop_dings = 0 t_imp_start = 0 - # to stop train proceduce we fit the line in the loss data - # if line is flat enough 5 times, we stop the procedure cur_loss = min_loss + while stop_dings <= patience: optimizer.step(closure) From a056d742b3440a84b7d1e666b0504118df536d15 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 16 Dec 2022 19:02:44 +0300 Subject: [PATCH 202/225] Update solver.rst --- docs/source/modules/solver.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst index d0293b85..7bc3c36c 100644 --- a/docs/source/modules/solver.rst +++ b/docs/source/modules/solver.rst @@ -1,4 +1,6 @@ +====== Solver +====== ..automodule:: solver :members: From af1ab25e0bbd18f00182480169fb042ba3decdfa Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 16 Dec 2022 20:05:22 +0300 Subject: [PATCH 203/225] Some docs improvements --- tedeous/finite_diffs.py | 11 ++--------- tedeous/solver.py | 2 ++ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index cfcf7c89..485aa36a 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -140,34 +140,27 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[li axes_mode: 'central' or combination of 'f' and 'b'. Returns: - finite_diff: transformed axes due to finite difference mode. - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + Transformed axes due to finite difference mode;\n + List, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] direction_list = [] - # we generate [0,0,0,...] for number of variables (varn) for i in range(varn): finite_diff += [0] - # just to make this [[0,0,...]] finite_diff = [finite_diff] - # when we increase differential order for i in range(order): diff_list = [] for diff in finite_diff: - # we use [0,0]->[[1,0],[-1,0]] rule for the axis if axes_mode == 'central': f_diff = Finite_diffs.second_order_shift(diff, axes[i], 'central') else: f_diff = Finite_diffs.second_order_shift(diff, axes[i], axes_mode[axes[i]]) if len(diff_list) == 0: - # and put it to the pool of differentials if it is empty diff_list = f_diff else: - # or add to the existing pool for diffs in f_diff: diff_list.append(diffs) - # the we go to the next differential if needed finite_diff = diff_list direction_list.append(axes_mode[axes[i]]) return finite_diff, direction_list diff --git a/tedeous/solver.py b/tedeous/solver.py index 853c68e1..00ededed 100644 --- a/tedeous/solver.py +++ b/tedeous/solver.py @@ -64,6 +64,7 @@ def __init__(self, grid: torch.Tensor, equal_cls: Union[input_preprocessing.Equa super().__init__(grid, equal_cls, model, mode) self.weak_form = weak_form + def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ Union[torch.optim.Adam, torch.optim.SGD, torch.optim.LBFGS]: """ @@ -100,6 +101,7 @@ def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ return optimizer + def solution_print(self, title: Union[str, None] = None, solution_print: bool = False, solution_save: bool = True, save_dir: Union[str, None] = None): """ From 3d145983fae966e7044c3464406c73e8610982b1 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sat, 17 Dec 2022 19:06:07 +0300 Subject: [PATCH 204/225] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 0ea69fc1..4df2262b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ scipy seaborn torch autodocsumm +typing From 6d8bed7a45941e77abd32af430be9ebfcf3e64ed Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sat, 17 Dec 2022 19:15:05 +0300 Subject: [PATCH 205/225] Update .readthedocs --- .readthedocs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.readthedocs b/.readthedocs index 9794ec9d..a0447562 100644 --- a/.readthedocs +++ b/.readthedocs @@ -11,6 +11,6 @@ sphinx: python: - version: 3.9 + version: 3.9.0 install: - - requirements: requirements.txt \ No newline at end of file + - requirements: requirements.txt From d7176e733a31e02755fce861a460204b983451d0 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Sat, 17 Dec 2022 19:22:48 +0300 Subject: [PATCH 206/225] Update .readthedocs --- .readthedocs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs b/.readthedocs index a0447562..50f11ed4 100644 --- a/.readthedocs +++ b/.readthedocs @@ -11,6 +11,6 @@ sphinx: python: - version: 3.9.0 + version: 3.8.7 install: - requirements: requirements.txt From ef1d038c5190775cd7172218c4943e7655dcd4d8 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sat, 17 Dec 2022 20:27:38 +0300 Subject: [PATCH 207/225] Fix for docs --- examples/example_weak_LotkaVolterra.py | 6 +++--- examples/example_weak_Lotka_paper.py | 6 +++--- examples/example_weak_SOD.py | 6 +++--- examples/example_weak_Schrodinger.py | 2 +- tedeous/cache.py | 6 +++--- tedeous/config.py | 4 ++-- tedeous/finite_diffs.py | 2 +- tedeous/points_type.py | 6 +++--- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/examples/example_weak_LotkaVolterra.py b/examples/example_weak_LotkaVolterra.py index 17cfed53..f5e6f38d 100644 --- a/examples/example_weak_LotkaVolterra.py +++ b/examples/example_weak_LotkaVolterra.py @@ -22,9 +22,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time alpha = 20. diff --git a/examples/example_weak_Lotka_paper.py b/examples/example_weak_Lotka_paper.py index 04fd9d54..015332d5 100644 --- a/examples/example_weak_Lotka_paper.py +++ b/examples/example_weak_Lotka_paper.py @@ -22,9 +22,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution import time diff --git a/examples/example_weak_SOD.py b/examples/example_weak_SOD.py index 77776999..1116027a 100644 --- a/examples/example_weak_SOD.py +++ b/examples/example_weak_SOD.py @@ -19,9 +19,9 @@ sys.path.pop() sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))) -from input_preprocessing import Equation -from solver import Solver -from metrics import Solution +from tedeous.input_preprocessing import Equation +from tedeous.solver import Solver +from tedeous.metrics import Solution device = torch.device('cpu') diff --git a/examples/example_weak_Schrodinger.py b/examples/example_weak_Schrodinger.py index c9dbeeed..8b7260ff 100644 --- a/examples/example_weak_Schrodinger.py +++ b/examples/example_weak_Schrodinger.py @@ -223,7 +223,7 @@ def v(grid): if not(os.path.isdir(img_dir)): os.mkdir(img_dir) start = time.time() - model = Solver(grid, equation, model, 'autograd', weak_form=weak_form).solve(lambda_bound=1, verbose=1, learning_rate=0.09, + model = Solver(grid, equation, model, 'autograd', weak_form=weak_form).solve(lambda_bound=1, verbose=True, learning_rate=0.09, eps=1e-6, tmin=1000, tmax=1e5,use_cache=False,cache_dir='../cache/',cache_verbose=True, save_always=False,no_improvement_patience=10,loss_oscillation_window=10, print_every=10, optimizer_mode='LBFGS',step_plot_print=False, step_plot_save=False, image_save_dir=img_dir) end = time.time() diff --git a/tedeous/cache.py b/tedeous/cache.py index 7a278352..9d2ef037 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -183,7 +183,7 @@ def closure(): self.save_model(cache_model,cache_model.state_dict(),optimizer.state_dict(),cache_dir=cache_dir, name=name) - def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> tuple[Any, dict]: + def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool = False) -> Tuple[Any, dict]: """ Smth @@ -217,7 +217,7 @@ def closure(): def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ - tuple[Any, None], tuple[Any, Union[dict, Any]]]: + Tuple[Any, None], Tuple[Any, Union[dict, Any]]]: """ Smth @@ -254,7 +254,7 @@ def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, cache_verbose: bool,model_randomize_parameter: Union[float, None], - cache_model: torch.nn.Sequential, weak_form: None = None) -> Union[tuple[Any, Any], tuple[Any, Tensor]]: + cache_model: torch.nn.Sequential, weak_form: None = None) -> Union[Tuple[Any, Any], Tuple[Any, Tensor]]: """ Restores the model from the cache and uses it for retraining. diff --git a/tedeous/config.py b/tedeous/config.py index d819daf7..4115f54c 100644 --- a/tedeous/config.py +++ b/tedeous/config.py @@ -85,7 +85,7 @@ def check_param_name(module_name: str, param_name: str) -> bool: return False class Config: - def __init__(self: Union[str, Optional], *args): + def __init__(self, *args): """ We initialize config with default one @@ -122,7 +122,7 @@ def __init__(self: Union[str, Optional], *args): elif len(args) > 1: print('Too much initialization args, using default config') - def set_parameter(self, parameter_string: str, value: Union[bool,float, int, None]): + def set_parameter(self, parameter_string: str, value: Union[bool, float, int, None]): """ We may want to just change default config parameters manually, without loading the .json diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index 485aa36a..31df5afd 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -130,7 +130,7 @@ def second_order_shift(diff: list, axis: int, mode: str) -> list: return [diff_3, diff_2, diff_1] @staticmethod - def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> tuple[list, list]: + def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: """ Building second order (in terms of accuracy) finite-difference stencil. diff --git a/tedeous/points_type.py b/tedeous/points_type.py index 02653de9..c974df4b 100644 --- a/tedeous/points_type.py +++ b/tedeous/points_type.py @@ -19,7 +19,7 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: shift: shift value. Returns: - grid_shift: shifted array of a n-D points. + shifted array of a n-D points. """ grid_shift = grid.clone() grid_shift[:, axis] = grid[:, axis] + shift @@ -40,7 +40,7 @@ def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: hull: initial array of a n-D points. Returns: - in_hull_array: array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. + array of a n-D boolean type points. True - if 'p' in 'hull', False - otherwise. """ if p.shape[1] > 1: @@ -110,7 +110,7 @@ def grid_sort(grid: torch.Tensor) -> dict: grid: array of a n-D points. Returns: - grid_dict: sorted grid in each subset (see Points_type.point_typization). + sorted grid in each subset (see Points_type.point_typization). """ point_type = Points_type.point_typization(grid) From 431c9bba81e6c3f2960fd4102f8f764c10cdbd8a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 18 Dec 2022 15:35:17 +0300 Subject: [PATCH 208/225] Docs fix --- tedeous/cache.py | 20 ++++++++------------ tedeous/config.py | 22 ++++++++++++++++------ tedeous/finite_diffs.py | 6 +++--- tedeous/solver.py | 7 +++---- 4 files changed, 30 insertions(+), 25 deletions(-) diff --git a/tedeous/cache.py b/tedeous/cache.py index 9d2ef037..fd7863e2 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -41,22 +41,18 @@ def randomize_params(m): def cache_lookup(self, lambda_bound: float = 0.001, weak_form: None = None, cache_dir: str = '../cache/', - nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Union[dict, torch.Tensor]: + nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Tuple[dict, torch.Tensor]: ''' Looking for a saved cache. Args: - lambda_bound: float - an arbitrary chosen constant, influence only convergence speed. - cache_dir: str - directory where saved cache in. - nmodels: - ? - cache_verbose: bool - more detailed info about models in cache. + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + cache_dir: directory where saved cache in. + nmodels: smth + cache_verbose: more detailed info about models in cache. Returns: - best_checkpoint + best_checkpoint min_loss minimum error in pre-trained error @@ -270,8 +266,8 @@ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, Returns: - model: NN or mat - min_loss: min loss as is. + * **model** - NN or mat + * **min_loss** - min loss as is. """ r = self.create_random_fn(model_randomize_parameter) diff --git a/tedeous/config.py b/tedeous/config.py index 4115f54c..3034ad5b 100644 --- a/tedeous/config.py +++ b/tedeous/config.py @@ -3,7 +3,17 @@ import json -def read_config(name): +def read_config(name: str) -> json: + """ + Read some config + + Args: + name: config name. + + Returns: + json config. + + """ with open(name, 'r') as config_file: config_data = json.load(config_file) return config_data @@ -59,7 +69,7 @@ def check_module_name(module_name: str) -> bool: module_name: first level of a parameter of a custom config. Returns: - module_correctness: if module presents in 'default' config. + if module presents in 'default' config. """ if module_name in default_config.keys(): return True @@ -77,7 +87,7 @@ def check_param_name(module_name: str, param_name: str) -> bool: param_name: specific parameter name. Returns: - module_correctness: true if module presents in 'default' config. + true if module presents in 'default' config. """ if param_name in default_config[module_name].keys(): return True @@ -96,7 +106,7 @@ def __init__(self, *args): config_path: path to a custom config Returns: - self: config used in solver.optimization_solver function + config used in solver.optimization_solver function """ @@ -130,8 +140,8 @@ def set_parameter(self, parameter_string: str, value: Union[bool, float, int, No We run checks to see we set them correctly Args: - parameter_string: string in format 'module.parameter'. - value: value for the parameter. + * **parameter_string** - string in format 'module.parameter'.\n + * **value** - value for the parameter. """ diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index 31df5afd..2a2eec2e 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -140,8 +140,8 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[li axes_mode: 'central' or combination of 'f' and 'b'. Returns: - Transformed axes due to finite difference mode;\n - List, which contains directions (i.e, 'central', 'f', 'b'). + **finite_diff**: Transformed axes due to finite difference mode;\n + **direction_list**: List, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] @@ -177,7 +177,7 @@ def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). Returns: - sign_list: list, with signs for corresponding points. + list, with signs for corresponding points. """ sign_list = [1] for i in range(order): diff --git a/tedeous/solver.py b/tedeous/solver.py index 00ededed..4ce70309 100644 --- a/tedeous/solver.py +++ b/tedeous/solver.py @@ -20,7 +20,7 @@ def grid_format_prepare(coord_list: Union[torch.Tensor, list, np.ndarray], mode: mode: Calculation method. (i.e., "NN", "autograd", "mat"). Returns: - grid: grid in a general form. + grid in a general form. """ if type(coord_list) == torch.Tensor: @@ -75,7 +75,7 @@ def optimizer_choice(self, optimizer: str, learning_rate: float) -> \ learning_rate: determines the step size at each iteration while moving toward a minimum of a loss function. Returns: - optimizer: torch.optimizer object as is. + torch.optimizer object as is. """ if optimizer == 'Adam': if self.mode == 'NN' or self.mode == 'autograd': @@ -212,8 +212,7 @@ def solve(self, lambda_bound: Union[int, float] = 10, verbose: bool = False, lea image_save_dir: a directory where saved figure in. Returns: - model: neural network. - + neural network. """ r = self.create_random_fn(model_randomize_parameter) From 36ca51bb0746145ca217dba2a001bd9cd7edec4a Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 18 Dec 2022 15:52:40 +0300 Subject: [PATCH 209/225] Docs fix --- tedeous/cache.py | 21 ++++++++++----------- tedeous/config.py | 4 ++-- tedeous/finite_diffs.py | 4 ++-- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/tedeous/cache.py b/tedeous/cache.py index fd7863e2..681e33bc 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -52,10 +52,9 @@ def cache_lookup(self, lambda_bound: float = 0.001, weak_form: None = None, cach cache_verbose: more detailed info about models in cache. Returns: - best_checkpoint + * **best_checkpoint** -- smth.\n + * **min_loss** -- minimum error in pre-trained error. - min_loss - minimum error in pre-trained error ''' files=glob.glob(cache_dir+'*.tar') # if files not found @@ -185,11 +184,11 @@ def scheme_interp(self, trained_model: torch.nn.Sequential, cache_verbose: bool Args: trained_model: smth - cache_verbose: more detailed info about models in cache. + cache_verbose: detailed info about models in cache. Returns: - model: NN or mat - optimizer.state_dict: dict + * **model** -- NN or mat.\n + * **optimizer_state** -- dict. """ optimizer = torch.optim.Adam(self.model.parameters(), lr=0.001) @@ -219,11 +218,11 @@ def cache_retrain(self, cache_checkpoint, cache_verbose: bool = False) -> Union[ Args: cache_checkpoint: smth - cache_verbose: more detailed info about models in cache. + cache_verbose: detailed info about models in cache. Returns: - model: - optimizer_state: + * **model** -- model.\n + * **optimizer_state** -- smth """ # do nothing if cache is empty if cache_checkpoint==None: @@ -266,8 +265,8 @@ def cache(self, cache_dir: str, nmodels: Union[int, None], lambda_bound: float, Returns: - * **model** - NN or mat - * **min_loss** - min loss as is. + * **model** -- NN or mat.\n + * **min_loss** -- min loss as is. """ r = self.create_random_fn(model_randomize_parameter) diff --git a/tedeous/config.py b/tedeous/config.py index 3034ad5b..55347208 100644 --- a/tedeous/config.py +++ b/tedeous/config.py @@ -140,8 +140,8 @@ def set_parameter(self, parameter_string: str, value: Union[bool, float, int, No We run checks to see we set them correctly Args: - * **parameter_string** - string in format 'module.parameter'.\n - * **value** - value for the parameter. + parameter_string: string in format 'module.parameter'. + value: value for the parameter. """ diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index 2a2eec2e..7928ce35 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -140,8 +140,8 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[li axes_mode: 'central' or combination of 'f' and 'b'. Returns: - **finite_diff**: Transformed axes due to finite difference mode;\n - **direction_list**: List, which contains directions (i.e, 'central', 'f', 'b'). + * **finite_diff** -- Transformed axes due to finite difference mode;\n + * **direction_list** -- List, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] From 6b5f0ad0246a00ea389fcf3c18a21321aa7871bf Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Sun, 18 Dec 2022 23:37:29 +0300 Subject: [PATCH 210/225] Doc fix --- tedeous/finite_diffs.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index 7928ce35..fd86d1d7 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -46,8 +46,8 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: axes_mode: 'central' or combination of 'f' and 'b'. Returns: - - finite_diff: transformed axes due to finite difference mode. - - direction_list: list, which contains directions (i.e, 'central', 'f', 'b'). + * **finite_diff** -- Transformed axes due to finite difference mode;\n + * **direction_list** -- List, which contains directions (i.e, 'central', 'f', 'b'). """ order = len(axes) finite_diff = [] @@ -89,7 +89,7 @@ def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). Returns: - sign_list: list, with signs for corresponding points. + list, with signs for corresponding points. """ sign_list = [1] @@ -114,7 +114,7 @@ def second_order_shift(diff: list, axis: int, mode: str) -> list: mode: the finite difference mode (i.e., forward, backward, central). Returns: - diff_list: list with shifted points. + list with shifted points. """ diff_1 = copy(diff) diff_2 = copy(diff) From 087689d797603218ce23bc81c5036c0e6afa011d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Mon, 19 Dec 2022 00:03:51 +0300 Subject: [PATCH 211/225] docs fix --- docs/source/tedeous/install.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/source/tedeous/install.rst b/docs/source/tedeous/install.rst index 302c7700..100df957 100644 --- a/docs/source/tedeous/install.rst +++ b/docs/source/tedeous/install.rst @@ -1,4 +1,10 @@ Install ======= -TBA... \ No newline at end of file +At the moment, it is possible to install the TEDEouS only by cloning the repository from github. +You can use either Github Desktop for cloning or command line using the following: +:: + + git clone https://github.com/ITMO-NSS-team/torch_DE_solver.git + cd torch_DE_solver + pip install -r requirements.txt \ No newline at end of file From 4c8ad6913bf064dffded057a2a47e63d4a12fc08 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Tue, 20 Dec 2022 22:22:49 +0300 Subject: [PATCH 212/225] Update install.rst --- docs/source/tedeous/install.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/tedeous/install.rst b/docs/source/tedeous/install.rst index 100df957..36b2f617 100644 --- a/docs/source/tedeous/install.rst +++ b/docs/source/tedeous/install.rst @@ -2,9 +2,10 @@ Install ======= At the moment, it is possible to install the TEDEouS only by cloning the repository from github. + You can use either Github Desktop for cloning or command line using the following: :: git clone https://github.com/ITMO-NSS-team/torch_DE_solver.git cd torch_DE_solver - pip install -r requirements.txt \ No newline at end of file + pip install -r requirements.txt From 344552b0bcd3982fb07b43ccb49b98aa33595c6d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Tue, 20 Dec 2022 23:29:17 +0300 Subject: [PATCH 213/225] docs --- docs/source/examples/schrodinger.rst | 12 ++++++++++++ docs/source/tedeous/examples.rst | 23 ++++++++++++++++++++++- docs/source/tedeous/guide.rst | 3 +-- tedeous/device.py | 13 +++++++++++++ tedeous/finite_diffs.py | 4 ++-- tedeous/points_type.py | 11 ++++++----- 6 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 docs/source/examples/schrodinger.rst create mode 100644 tedeous/device.py diff --git a/docs/source/examples/schrodinger.rst b/docs/source/examples/schrodinger.rst new file mode 100644 index 00000000..b0858bb4 --- /dev/null +++ b/docs/source/examples/schrodinger.rst @@ -0,0 +1,12 @@ +Schrodinger equation +==================== + +Problem statement +~~~~~~~~~~~~~~~~~ +Equation: + +.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0 + +Boundary and initial condition: + +.. math:: x \\in [-5,5], \\quad t \\in [0, \\pi/2], h(t, -5) = h(t,5) \n h_x(t, -5) = h_x(t,5), h(0,x) = 2 sech(x) \ No newline at end of file diff --git a/docs/source/tedeous/examples.rst b/docs/source/tedeous/examples.rst index 88c00f17..0290b595 100644 --- a/docs/source/tedeous/examples.rst +++ b/docs/source/tedeous/examples.rst @@ -1,4 +1,25 @@ Examples ======== -TBA... \ No newline at end of file +Here are some examples of solving O/PDEs. + +ODEs +~~~~ + +.. toctree:: + :maxdepth: 1 + + examples/lotka_volterra + examples/legendre + examples/painleve + +PDEs +~~~~ + +.. toctree:: + :maxdepth: 1 + + examples/schrodinger + examples/wave + examples/sod + diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst index 76866f2a..b880a103 100644 --- a/docs/source/tedeous/guide.rst +++ b/docs/source/tedeous/guide.rst @@ -1,4 +1,3 @@ -Quick guide +Quickstart =========== -TBA... \ No newline at end of file diff --git a/tedeous/device.py b/tedeous/device.py new file mode 100644 index 00000000..0a94f332 --- /dev/null +++ b/tedeous/device.py @@ -0,0 +1,13 @@ +import torch + +def set_device(*args): + if len(args) == 0: + if torch.has_cuda: + return torch.device('cuda') + elif torch.has_mps: + return torch.device('mps') + else: + return torch.device('cpu') + if len(args) == 1: + device = args[0] + return torch.device(device) \ No newline at end of file diff --git a/tedeous/finite_diffs.py b/tedeous/finite_diffs.py index fd86d1d7..1338614e 100644 --- a/tedeous/finite_diffs.py +++ b/tedeous/finite_diffs.py @@ -79,7 +79,7 @@ def scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[list, list]: return finite_diff, direction_list @staticmethod - def sign_order(order: list, mode: str, h: float = 1 / 2) -> list: + def sign_order(order: Union[int, list], mode: str, h: float = 1 / 2) -> list: """ Determines the sign of the derivative for the corresponding transformation from Finite_diffs.scheme_build() @@ -166,7 +166,7 @@ def second_order_scheme_build(axes: list, varn: int, axes_mode: str) -> Tuple[li return finite_diff, direction_list @staticmethod - def second_order_sign_order(order: list, mode: str, h: float = 1/2) -> list: + def second_order_sign_order(order: Union[int,list], mode: str, h: float = 1/2) -> list: """ Determines the sign of the derivative for the corresponding point transformation from `Finite_diffs.scheme_build`.\n Same as `sign_order`, but more precise due to second order of accuracy. diff --git a/tedeous/points_type.py b/tedeous/points_type.py index c974df4b..1c2883ab 100644 --- a/tedeous/points_type.py +++ b/tedeous/points_type.py @@ -1,8 +1,9 @@ import numpy as np import torch from scipy.spatial import Delaunay +from tedeous.device import set_device - +device = set_device() class Points_type(): """ Discretizing the grid and allocating subsets for Finite Difference method. @@ -21,9 +22,9 @@ def shift_points(grid: torch.Tensor, axis: int, shift: float) -> torch.Tensor: Returns: shifted array of a n-D points. """ - grid_shift = grid.clone() + grid_shift = grid.clone().to(device) grid_shift[:, axis] = grid[:, axis] + shift - return grid_shift + return grid_shift.to(device) @staticmethod def in_hull(p: torch.Tensor, hull: torch.Tensor) -> np.ndarray: @@ -75,7 +76,7 @@ def point_typization(grid: torch.Tensor) -> dict: direction_list = [] for axis in range(grid.shape[1]): for direction in range(2): - direction_list.append(Points_type.in_hull(Points_type.shift_points(grid, axis, (-1) ** direction * 0.0001), grid)) + direction_list.append(Points_type.in_hull(Points_type.shift_points(grid.to(device), axis, (-1) ** direction * 0.0001), grid.to(device))) direction_list = np.array(direction_list) direction_list = np.transpose(direction_list) @@ -113,7 +114,7 @@ def grid_sort(grid: torch.Tensor) -> dict: sorted grid in each subset (see Points_type.point_typization). """ - point_type = Points_type.point_typization(grid) + point_type = Points_type.point_typization(grid.to(device)) point_types = set(point_type.values()) grid_dict = {} for p_type in point_types: From 358c79ad6007446e43521a99265f21c73906e0eb Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Tue, 20 Dec 2022 23:39:49 +0300 Subject: [PATCH 214/225] Update index.rst --- docs/source/tedeous/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index 16f2e42c..c0d2f769 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -5,7 +5,7 @@ TEDEouS .. toctree:: :glob: - :maxdepth: 2 + :maxdepth: 1 guide install From 1fad5e063e909c154876faea635398c7965becdd Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Tue, 20 Dec 2022 23:43:58 +0300 Subject: [PATCH 215/225] Delete schrodinger.rst --- docs/source/examples/schrodinger.rst | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 docs/source/examples/schrodinger.rst diff --git a/docs/source/examples/schrodinger.rst b/docs/source/examples/schrodinger.rst deleted file mode 100644 index b0858bb4..00000000 --- a/docs/source/examples/schrodinger.rst +++ /dev/null @@ -1,12 +0,0 @@ -Schrodinger equation -==================== - -Problem statement -~~~~~~~~~~~~~~~~~ -Equation: - -.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0 - -Boundary and initial condition: - -.. math:: x \\in [-5,5], \\quad t \\in [0, \\pi/2], h(t, -5) = h(t,5) \n h_x(t, -5) = h_x(t,5), h(0,x) = 2 sech(x) \ No newline at end of file From 14b1fd7e643c993e3fb6f4e84fd09fc0ba7a2a85 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Tue, 20 Dec 2022 23:45:03 +0300 Subject: [PATCH 216/225] Create schrodinger.rst --- docs/source/tedeous/examples/schrodinger.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/source/tedeous/examples/schrodinger.rst diff --git a/docs/source/tedeous/examples/schrodinger.rst b/docs/source/tedeous/examples/schrodinger.rst new file mode 100644 index 00000000..b0858bb4 --- /dev/null +++ b/docs/source/tedeous/examples/schrodinger.rst @@ -0,0 +1,12 @@ +Schrodinger equation +==================== + +Problem statement +~~~~~~~~~~~~~~~~~ +Equation: + +.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0 + +Boundary and initial condition: + +.. math:: x \\in [-5,5], \\quad t \\in [0, \\pi/2], h(t, -5) = h(t,5) \n h_x(t, -5) = h_x(t,5), h(0,x) = 2 sech(x) \ No newline at end of file From 4cd78987018d178cb7bd63146d16f06a5c3282dc Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 23 Dec 2022 14:49:21 +0300 Subject: [PATCH 217/225] Update schrodinger.rst --- docs/source/tedeous/examples/schrodinger.rst | 190 ++++++++++++++++++- 1 file changed, 188 insertions(+), 2 deletions(-) diff --git a/docs/source/tedeous/examples/schrodinger.rst b/docs/source/tedeous/examples/schrodinger.rst index b0858bb4..2676aafe 100644 --- a/docs/source/tedeous/examples/schrodinger.rst +++ b/docs/source/tedeous/examples/schrodinger.rst @@ -5,8 +5,194 @@ Problem statement ~~~~~~~~~~~~~~~~~ Equation: -.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0 +.. math:: i \frac{\partial u}{\partial t} + \frac{1}{2} \frac{\partial^2 u}{\partial x^2} + \lvert h^2 \rvert h = 0, \qquad x \in [-5,5], \quad t \in [0, \pi/2] Boundary and initial condition: -.. math:: x \\in [-5,5], \\quad t \\in [0, \\pi/2], h(t, -5) = h(t,5) \n h_x(t, -5) = h_x(t,5), h(0,x) = 2 sech(x) \ No newline at end of file +.. math:: h(t, -5) = h(t, 5), \quad h_x(t, -5) = h_x(t,5), \quad h(0,x) = 2 sech(x) + +Solution +~~~~~~~~ +First of all import all dependencies. + +.. code-block:: python + + import numpy as np + import torch + + from tedeous.solver import Solver + from tedeous.input_preprocessing import Equation + +After that let's define a computational grid. + +.. code-block:: python + x_grid = np.linspace(-5,5,n+1) + t_grid = np.linspace(0,np.pi/2,n+1) + x = torch.from_numpy(x_grid) + t = torch.from_numpy(t_grid) + grid = torch.cartesian_prod(x, t).float() + grid.to(device) + +Now let's define the boundary and initial conditions. +.. code-block:: python + fun = lambda x: 2/np.cosh(x) + + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + + + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) + + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + + + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] + + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + + + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] + + bop3_real = { + 'du/dx': + { + 'coeff': 1, + 'du/dx': [0], + 'pow': 1, + 'var': 0 + } + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + + bop3_imag = { + 'dv/dx': + { + 'coeff': 1, + 'dv/dx': [0], + 'pow': 1, + 'var': 1 + } + } + + + bcond_type = 'periodic' + + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] + +Now define the equation. +.. code-block:: python + schrodinger_eq_real = { + 'du/dt': + { + 'const': 1, + 'term': [1], + 'power': 1, + 'var': 0 + }, + '1/2*d2v/dx2': + { + 'const': 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 1 + }, + 'v * u**2': + { + 'const': 1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [1, 0] + }, + 'v**3': + { + 'const': 1, + 'term': [None], + 'power': 3, + 'var': 1 + } + + } + schrodinger_eq_imag = { + 'dv/dt': + { + 'const': 1, + 'term': [1], + 'power': 1, + 'var': 1 + }, + '-1/2*d2u/dx2': + { + 'const': - 1 / 2, + 'term': [0, 0], + 'power': 1, + 'var': 0 + }, + '-u * v ** 2': + { + 'const': -1, + 'term': [[None], [None]], + 'power': [1, 2], + 'var': [0, 1] + }, + '-u ** 3': + { + 'const': -1, + 'term': [None], + 'power': 3, + 'var': 0 + } + + } + + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + +Initialize the model. + +.. code-block:: python + model = torch.nn.Sequential( + torch.nn.Linear(2, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 100), + torch.nn.Tanh(), + torch.nn.Linear(100, 2) + ) + +Wrap grid, equation, conditions in one entity. This step requires to specify a calculation strategy. + +.. code-block:: python + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') + +And in the end you have to apply all these stuff in Solver class. + +.. code-block:: python + model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, + eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, + save_always=False,no_improvement_patience=500,print_every = None,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) \ No newline at end of file From a5a47a327d8eaee6f4aca5eb3f65e96d5a3b1445 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk <86979292+nikiniki1@users.noreply.github.com> Date: Fri, 23 Dec 2022 15:02:26 +0300 Subject: [PATCH 218/225] Update schrodinger.rst --- docs/source/tedeous/examples/schrodinger.rst | 84 +++++++++++--------- 1 file changed, 46 insertions(+), 38 deletions(-) diff --git a/docs/source/tedeous/examples/schrodinger.rst b/docs/source/tedeous/examples/schrodinger.rst index 2676aafe..94c13aa2 100644 --- a/docs/source/tedeous/examples/schrodinger.rst +++ b/docs/source/tedeous/examples/schrodinger.rst @@ -26,6 +26,7 @@ First of all import all dependencies. After that let's define a computational grid. .. code-block:: python + x_grid = np.linspace(-5,5,n+1) t_grid = np.linspace(0,np.pi/2,n+1) x = torch.from_numpy(x_grid) @@ -34,38 +35,40 @@ After that let's define a computational grid. grid.to(device) Now let's define the boundary and initial conditions. + .. code-block:: python + fun = lambda x: 2/np.cosh(x) - # u(x,0) = 2sech(x), v(x,0) = 0 - bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + # u(x,0) = 2sech(x), v(x,0) = 0 + bnd1_real = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() + bnd1_imag = torch.cartesian_prod(x, torch.from_numpy(np.array([0], dtype=np.float64))).float() - # u(x,0) = 2sech(x) - bndval1_real = fun(bnd1_real[:,0]) + # u(x,0) = 2sech(x) + bndval1_real = fun(bnd1_real[:,0]) - # v(x,0) = 0 - bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) + # v(x,0) = 0 + bndval1_imag = torch.from_numpy(np.zeros_like(bnd1_imag[:,0])) - # u(-5,t) = u(5,t) - bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() - bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() - bnd2_real = [bnd2_real_left,bnd2_real_right] + # u(-5,t) = u(5,t) + bnd2_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_real = [bnd2_real_left,bnd2_real_right] - # v(-5,t) = v(5,t) - bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() - bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() - bnd2_imag = [bnd2_imag_left,bnd2_imag_right] + # v(-5,t) = v(5,t) + bnd2_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd2_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd2_imag = [bnd2_imag_left,bnd2_imag_right] - # du/dx (-5,t) = du/dx (5,t) - bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() - bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() - bnd3_real = [bnd3_real_left, bnd3_real_right] + # du/dx (-5,t) = du/dx (5,t) + bnd3_real_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_real_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_real = [bnd3_real_left, bnd3_real_right] - bop3_real = { + bop3_real = { 'du/dx': { 'coeff': 1, @@ -73,13 +76,13 @@ Now let's define the boundary and initial conditions. 'pow': 1, 'var': 0 } - } - # dv/dx (-5,t) = dv/dx (5,t) - bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() - bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() - bnd3_imag = [bnd3_imag_left,bnd3_imag_right] + } + # dv/dx (-5,t) = dv/dx (5,t) + bnd3_imag_left = torch.cartesian_prod(torch.from_numpy(np.array([-5], dtype=np.float64)), t).float() + bnd3_imag_right = torch.cartesian_prod(torch.from_numpy(np.array([5], dtype=np.float64)), t).float() + bnd3_imag = [bnd3_imag_left,bnd3_imag_right] - bop3_imag = { + bop3_imag = { 'dv/dx': { 'coeff': 1, @@ -87,20 +90,22 @@ Now let's define the boundary and initial conditions. 'pow': 1, 'var': 1 } - } + } - bcond_type = 'periodic' + bcond_type = 'periodic' - bconds = [[bnd1_real, bndval1_real, 0], - [bnd1_imag, bndval1_imag, 1], - [bnd2_real, 0, bcond_type], - [bnd2_imag, 1, bcond_type], - [bnd3_real, bop3_real, bcond_type], - [bnd3_imag, bop3_imag, bcond_type]] + bconds = [[bnd1_real, bndval1_real, 0], + [bnd1_imag, bndval1_imag, 1], + [bnd2_real, 0, bcond_type], + [bnd2_imag, 1, bcond_type], + [bnd3_real, bop3_real, bcond_type], + [bnd3_imag, bop3_imag, bcond_type]] Now define the equation. + .. code-block:: python + schrodinger_eq_real = { 'du/dt': { @@ -132,7 +137,7 @@ Now define the equation. } } - schrodinger_eq_imag = { + schrodinger_eq_imag = { 'dv/dt': { 'const': 1, @@ -162,13 +167,14 @@ Now define the equation. 'var': 0 } - } + } - schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] + schrodinger_eq = [schrodinger_eq_real,schrodinger_eq_imag] Initialize the model. .. code-block:: python + model = torch.nn.Sequential( torch.nn.Linear(2, 100), torch.nn.Tanh(), @@ -188,11 +194,13 @@ Initialize the model. Wrap grid, equation, conditions in one entity. This step requires to specify a calculation strategy. .. code-block:: python + equation = Equation(grid, schrodinger_eq, bconds).set_strategy('autograd') And in the end you have to apply all these stuff in Solver class. .. code-block:: python + model = Solver(grid, equation, model, 'autograd').solve(lambda_bound=1, verbose=True, learning_rate=0.8, eps=1e-6, tmin=1000, tmax=1e5,use_cache=True,cache_dir='../cache/',cache_verbose=True, - save_always=False,no_improvement_patience=500,print_every = None,optimizer_mode='LBFGS',step_plot_print=False,step_plot_save=True,image_save_dir=img_dir) \ No newline at end of file + save_always=False,no_improvement_patience=500,print_every = None, optimizer_mode='LBFGS', step_plot_print=False, step_plot_save=True, image_save_dir=img_dir) From 9aa5c7e0e405c9ee40407640e75b4239bf285479 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 23 Dec 2022 16:10:18 +0300 Subject: [PATCH 219/225] Docs upd --- docs/source/tedeous/guide.rst | 4 ++-- docs/source/tedeous/index.rst | 1 + docs/source/tedeous/solve.rst | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 docs/source/tedeous/solve.rst diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst index b880a103..3272ac2c 100644 --- a/docs/source/tedeous/guide.rst +++ b/docs/source/tedeous/guide.rst @@ -1,3 +1,3 @@ -Quickstart -=========== +How it works +============ diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index c0d2f769..f35c89f6 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -8,5 +8,6 @@ TEDEouS :maxdepth: 1 guide + solve install examples diff --git a/docs/source/tedeous/solve.rst b/docs/source/tedeous/solve.rst new file mode 100644 index 00000000..88a42127 --- /dev/null +++ b/docs/source/tedeous/solve.rst @@ -0,0 +1,4 @@ +How to solve +============ + +.. image:: img/Solver.png \ No newline at end of file From d3b3de8e8e7473168a69c12c2b5c5b94d100b93d Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Fri, 23 Dec 2022 23:20:06 +0300 Subject: [PATCH 220/225] Add img dir for doc --- .gitignore | 6 +++++- docs/img/Solver.png | Bin 0 -> 6393788 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 docs/img/Solver.png diff --git a/.gitignore b/.gitignore index 8fbf0607..fd5fa9a7 100644 --- a/.gitignore +++ b/.gitignore @@ -138,4 +138,8 @@ dmypy.json img/ #wave_img/ *.png -*.csv \ No newline at end of file +*.csv +# exception for docs images +!docs/img/ +docs/img/* +!docs/img/*.png diff --git a/docs/img/Solver.png b/docs/img/Solver.png new file mode 100644 index 0000000000000000000000000000000000000000..f050dd4f83edf445b92b4a699bec125a340f681d GIT binary patch literal 6393788 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 Date: Fri, 23 Dec 2022 23:47:08 +0300 Subject: [PATCH 221/225] Update solve.rst --- docs/source/tedeous/solve.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/tedeous/solve.rst b/docs/source/tedeous/solve.rst index 88a42127..ec310886 100644 --- a/docs/source/tedeous/solve.rst +++ b/docs/source/tedeous/solve.rst @@ -1,4 +1,4 @@ How to solve ============ -.. image:: img/Solver.png \ No newline at end of file +.. image:: ../../img/Solver.png From e1fa7d8b22c6e8c6a09864f331f2223df7762ce7 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Thu, 29 Dec 2022 17:44:56 +0300 Subject: [PATCH 222/225] Docs upd --- docs/source/about.rst | 4 +++- docs/source/tedeous/guide.rst | 38 +++++++++++++++++++++++++++++++++++ docs/source/tedeous/index.rst | 1 - docs/source/tedeous/solve.rst | 4 ---- 4 files changed, 41 insertions(+), 6 deletions(-) delete mode 100644 docs/source/tedeous/solve.rst diff --git a/docs/source/about.rst b/docs/source/about.rst index 4ab632d9..7e641449 100644 --- a/docs/source/about.rst +++ b/docs/source/about.rst @@ -1,4 +1,6 @@ About us ======== -TBA... \ No newline at end of file +The TEDEouS is developed and maintained by the `NSS Lab `__ team. + +Our laboratory is part of the National Center for Cognitive Technologies (ITMO University, Russia), which provides cutting-edge software and algorithmic solutions. We focus on natural systems simulations, generative design of real and virtual objects, data-driven modeling, automated machine learning. \ No newline at end of file diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst index 3272ac2c..2dd8c0f5 100644 --- a/docs/source/tedeous/guide.rst +++ b/docs/source/tedeous/guide.rst @@ -1,3 +1,41 @@ How it works ============ +Architecture +~~~~~~~~~~~~ + +The architecture itself can be represented as in the figure below: + +.. image:: ../../img/Solver.png + +The solver is implemented so that it can be extended with new methods for solving +differential equations without global changes in the architecture. + +To define a new differential equation solution method, it is necessary to define a new solution method **Equation** and the mechanism for determining the derivative **Derivative**. + +In TEDEouS, we do not stick to the neural networks - the proposed approach may be extended to an arbitrary parametrized model. + +So, let's move to the each part of architecture. + +Equation +~~~~~~~~ + +The equation module allows to set an O/PDE, boundary and initial conditions, calculation domain. + +Moreover, it is possible to choose different approaches to solve an equation. Solver supports methods based on a matrix (linear model without activation layers) and neural network optimizations as well as a method based on pytorch automatic differentiation algorithm. + +**Grid** + +The grid parameter represents a domain where we want to calculate a +differential equation. The only significant restriction is that only a single-connected +domain may be considered. We do not assume that geometry has a particular shape +- rectangular, circular or any other analytical domain. To preserve generality domain +is represented by the number of points. + +**Equation** + +We collect all required parameters to equation interface. Interface includes several parameters such as: coefficient, operator, power and optional parameter variable (it must be specified if the equation depends on 𝑛 variables, i.e. in case of system solution). + +**Boundary and initial conditions** + +In the classical solvers, we work with canonical types such as prescribed values (Dirichlet type boundary conditions, it may be a function of boundary) of field or normal differential values (Neumann type boundary conditions) for the entire boundary. Initial conditions are also prescribed values or function at 𝑡 = 0. \ No newline at end of file diff --git a/docs/source/tedeous/index.rst b/docs/source/tedeous/index.rst index f35c89f6..c0d2f769 100644 --- a/docs/source/tedeous/index.rst +++ b/docs/source/tedeous/index.rst @@ -8,6 +8,5 @@ TEDEouS :maxdepth: 1 guide - solve install examples diff --git a/docs/source/tedeous/solve.rst b/docs/source/tedeous/solve.rst deleted file mode 100644 index ec310886..00000000 --- a/docs/source/tedeous/solve.rst +++ /dev/null @@ -1,4 +0,0 @@ -How to solve -============ - -.. image:: ../../img/Solver.png From 7084a18868568409fa4774465354aab14b921f9c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 4 Jan 2023 21:59:48 +0300 Subject: [PATCH 223/225] Fix rebase --- docs/source/tedeous/guide.rst | 8 +- tedeous/cache.py | 5 +- tedeous/device.py | 1 + tedeous/input_preprocessing.py | 425 +++++++++++++++------------------ tedeous/metrics.py | 260 ++++++++++++-------- tedeous/points_type.py | 16 +- 6 files changed, 376 insertions(+), 339 deletions(-) diff --git a/docs/source/tedeous/guide.rst b/docs/source/tedeous/guide.rst index 2dd8c0f5..294de09d 100644 --- a/docs/source/tedeous/guide.rst +++ b/docs/source/tedeous/guide.rst @@ -38,4 +38,10 @@ We collect all required parameters to equation interface. Interface includes sev **Boundary and initial conditions** -In the classical solvers, we work with canonical types such as prescribed values (Dirichlet type boundary conditions, it may be a function of boundary) of field or normal differential values (Neumann type boundary conditions) for the entire boundary. Initial conditions are also prescribed values or function at 𝑡 = 0. \ No newline at end of file +In the classical solvers, we work with canonical types such as prescribed values (Dirichlet type boundary conditions, it may be a function of boundary) of field or normal differential values (Neumann type boundary conditions) for the entire boundary. Initial conditions are also prescribed values or function at 𝑡 = 0. + +Solution +~~~~~~~~ + +Differenatation +~~~~~~~~~~~~~~~ \ No newline at end of file diff --git a/tedeous/cache.py b/tedeous/cache.py index 681e33bc..e6f1b62c 100644 --- a/tedeous/cache.py +++ b/tedeous/cache.py @@ -42,9 +42,8 @@ def randomize_params(m): def cache_lookup(self, lambda_bound: float = 0.001, weak_form: None = None, cache_dir: str = '../cache/', nmodels: Union[int, None] = None, cache_verbose: bool = False) -> Tuple[dict, torch.Tensor]: - ''' + """ Looking for a saved cache. - Args: lambda_bound: an arbitrary chosen constant, influence only convergence speed. cache_dir: directory where saved cache in. @@ -55,7 +54,7 @@ def cache_lookup(self, lambda_bound: float = 0.001, weak_form: None = None, cach * **best_checkpoint** -- smth.\n * **min_loss** -- minimum error in pre-trained error. - ''' + """ files=glob.glob(cache_dir+'*.tar') # if files not found if len(files)==0: diff --git a/tedeous/device.py b/tedeous/device.py index 0a94f332..71b42d4a 100644 --- a/tedeous/device.py +++ b/tedeous/device.py @@ -9,5 +9,6 @@ def set_device(*args): else: return torch.device('cpu') if len(args) == 1: + global device device = args[0] return torch.device(device) \ No newline at end of file diff --git a/tedeous/input_preprocessing.py b/tedeous/input_preprocessing.py index 4a488a27..0d1eccbb 100644 --- a/tedeous/input_preprocessing.py +++ b/tedeous/input_preprocessing.py @@ -1,4 +1,4 @@ - +from typing import Union import torch import numpy as np @@ -7,58 +7,68 @@ from tedeous.finite_diffs import Finite_diffs class EquationMixin(): + """ + Auxiliary class. This one contains some functions that uses in other classes. + """ @staticmethod - def operator_unify(operator): - """ - I just was annoyed adding additional square brackets to the operators. - This one allows to make operator form simpler. - - Parameters - ---------- - operator : list - Operator in form ... . - - Returns - ------- - unified_operator : list - DESCRIPTION. - - """ - unified_operator = [] - for term in operator: - const = term[0] - vars_set = term[1] - power = term[2] - variables=[] - if len(term)==4: - variables = term[3] - elif isinstance(power,(int,float)): - variables=0 - elif type(power)==list: - for _ in range(len(power)): - variables.append(0) - if variables is None: - if type(power) is list: - unified_operator.append([const, vars_set, power,0]) - else: - unified_operator.append([const, [vars_set], [power],[0]]) + def operator_unify(operator: list) -> list: + """ + This one allows to make operator form simpler. + Args: + operator: operator in input form. + Returns: + operator in unified form for preprocessing. + """ + unified_operator = [] + for term in operator: + const = term[0] + vars_set = term[1] + power = term[2] + variables=[] + if len(term)==4: + variables = term[3] + elif isinstance(power,(int,float)): + variables=0 + elif type(power)==list: + for _ in range(len(power)): + variables.append(0) + if variables is None: + if type(power) is list: + unified_operator.append([const, vars_set, power,0]) else: - if type(power) is list: - unified_operator.append([const, vars_set, power,variables]) - else: - unified_operator.append([const, [vars_set], [power],[variables]]) - # if type(power) is list: - # unified_operator.append([const, vars_set, power]) - # else: - # unified_operator.append([const, [vars_set], [power]]) - return unified_operator + unified_operator.append([const, [vars_set], [power],[0]]) + else: + if type(power) is list: + unified_operator.append([const, vars_set, power,variables]) + else: + unified_operator.append([const, [vars_set], [power],[variables]]) + # if type(power) is list: + # unified_operator.append([const, vars_set, power]) + # else: + # unified_operator.append([const, [vars_set], [power]]) + return unified_operator @staticmethod - def op_dict_to_list(opdict): + def op_dict_to_list(opdict: dict) -> list: + """ + Transform operator in dict form to list. + Args: + opdict: operator in dict form. + Returns: + operator in list (input) form. + """ return list([list(term.values()) for term in opdict.values()]) @staticmethod - def closest_point(grid,target_point): + def closest_point(grid: torch.Tensor, target_point: float) -> int: + """ + Defines the closest boundary point to the grid. Auxiliary function. + Args: + grid: array of a n-D points. + target_point: boundary point. + Returns: + position of the boundary point on the grid. + """ min_dist=np.inf pos=0 min_pos=0 @@ -71,21 +81,15 @@ def closest_point(grid,target_point): return min_pos @staticmethod - def bndpos(grid, bnd): + def bndpos(grid: torch.Tensor, bnd: torch.Tensor) -> Union[list, int]: """ - - Returns the position of the boundary points on the grid - - Parameters - ---------- - grid : torch.Tensor - grid for coefficient in form of torch.Tensor mapping - bnd : torch.Tensor - boundary - Returns - ------- - bndposlist : list (int) - positions of boundaty points in grid + Returns the position of the boundary points on the grid. + + Args: + grid: grid for coefficient in form of torch.Tensor mapping. + bnd: boundary conditions. + Returns: + list of positions of the boundary points on the grid. """ if grid.shape[0] == 1: grid=grid.reshape(-1,1) @@ -121,23 +125,15 @@ def search_pos(bnd): return bndposlist @staticmethod - def bnd_unify(bconds): + def bnd_unify(bconds: list) -> Union[None, list]: """ - Serves to add None instead of empty operator - - Parameters - ---------- - bconds : list - - boundary in conventional form (see examples) - - Returns - ------- - unified_bconds : list - - boundary in input-friendly form - + Serves to add None instead of empty operator. + Args: + bconds: boundary in conventional form (see examples). + Returns: + boundary in input-friendly form. """ + if bconds==None: return None unified_bconds = [] @@ -181,7 +177,21 @@ def bnd_prepare(self, value): class Equation_NN(EquationMixin, Points_type, Finite_diffs): - def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_order=2): + """ + Prepares equation, boundary conditions for NN method. + """ + def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, + h: float = 0.001, inner_order: int = 1, boundary_order: int = 2): + """ + Prepares equation, boundary conditions for NN method. + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 + """ self.grid = grid self.operator = operator self.bconds = bconds @@ -189,32 +199,16 @@ def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_orde self.inner_order = inner_order self.boundary_order = boundary_order - def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type): + def operator_to_type_op(self, unified_operator: list, nvars: int, axes_scheme_type: str) -> list: """ Function serves applying different schemes to a different point types for entire operator - - Parameters - ---------- - unified_operator : list - operator in a proper form - nvars : int - Dimensionality of the problem. - axes_scheme_type : string - 'central' or combination of 'f' and 'b'. - h : float, optional - Derivative precision parameter (to simplify h in the expression - (f(x+h)-f(x))/h). The default is 1/2. - boundary_order : int, optional - Order of finite difference scheme taken at the domain boundary points. - The default is 1. - - Returns - ------- - fin_diff_op : list - list, where the conventional operator changed to steps and signs - (see scheme_build function description). - + Args: + unified_operator: operator in a proper form. + nvars: dimensionality of the problem. + axes_scheme_type: 'central' or combination of 'f' and 'b'. + Returns: + list, where the conventional operator changed to steps and signs (see scheme_build function description). """ fin_diff_op = [] for term in unified_operator: @@ -249,24 +243,16 @@ def operator_to_type_op(self, unified_operator, nvars, axes_scheme_type): fin_diff_op.append([const, fin_diff_list, s_order_list, power,variables]) return fin_diff_op - def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): + def finite_diff_scheme_to_grid_list(self, finite_diff_scheme: list, grid_points: torch.Tensor) -> list: """ - Axiluary function that converts integer grid steps in term described in + Auxiliary function that converts integer grid steps in term described in finite-difference scheme to a grids with shifted points, i.e. from field (x,y) -> (x,y+h). - - Parameters - ---------- - finite_diff_scheme : list - operator_to_type_op one term - grid : torch.Tensor - h : float - derivative precision parameter. The default is 0.001. - - Returns - ------- - s_grid_list : list - list, where the the steps and signs changed to grid and signs + Args: + finite_diff_scheme: operator_to_type_op one term. + grid: array of a n-D points. + Returns: + list, where the steps and signs changed to grid and signs. """ s_grid_list = [] for i, shifts in enumerate(finite_diff_scheme): @@ -277,29 +263,17 @@ def finite_diff_scheme_to_grid_list(self, finite_diff_scheme, grid_points): s_grid_list.append(s_grid) return s_grid_list - def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): + def type_op_to_grid_shift_op(self, fin_diff_op: list, grid_points: torch.Tensor) -> list: """ Converts operator to a grid_shift form. Includes term coefficient conversion. - Coeff may be integer, function or array, last two are mapped to a - subgrid that corresponds point type - - Parameters - ---------- - fin_diff_op : list - operator_to_type_op result. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - true_grid : TYPE, optional - initial grid for coefficient in form of torch.Tensor mapping - - Returns - ------- - shift_grid_op : list - final form of differential operator used in the algorithm for single - grid type + Coeff may be integer, function or array, last two are mapped to a + subgrid that corresponds point type. + Args: + fin_diff_op: operator_to_type_op result. + grid_points: grid with sorted nodes. + Returns: + final form of differential operator used in the algorithm for single grid type. """ shift_grid_op = [] for term1 in fin_diff_op: @@ -311,7 +285,6 @@ def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): coeff = (coeff1, grid_points) elif type(coeff1) == torch.Tensor: pos = self.bndpos(self.grid, grid_points) - coeff = coeff1[pos].reshape(-1, 1) finite_diff_scheme = term1[1] @@ -328,59 +301,30 @@ def type_op_to_grid_shift_op(self, fin_diff_op, grid_points): return shift_grid_op - def apply_all_operators(self, unified_operator, grid_dict1): + def apply_all_operators(self, unified_operator: list, grid_dict: dict) -> list: """ - Parameters - ---------- - operator : list - operator_unify result. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - subset : list, optional - grid subsets used for the operator ,e.g. ['central','fb','ff'] - true_grid : TYPE, optional - initial grid for coefficient in form of torch.Tensor mapping - - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm for subset - grid types - + Applies all transformations to operator. + Args: + unified_operator: operator_unify result. + grid_dict: result Points_type.grid_sort + Returns: + final form of differential operator used in the algorithm for subset grid types. """ operator_list = [] - nvars =list(grid_dict1.values())[0].shape[-1] - for operator_type in list(grid_dict1.keys()): + nvars =list(grid_dict.values())[0].shape[-1] + for operator_type in list(grid_dict.keys()): b = self.operator_to_type_op(unified_operator, nvars, operator_type) - c = self.type_op_to_grid_shift_op(b, grid_dict1[operator_type]) + c = self.type_op_to_grid_shift_op(b, grid_dict[operator_type]) operator_list.append(c) return operator_list - def operator_prepare(self): + def operator_prepare(self) -> list: """ - Changes the operator in conventional form to the input one - - Parameters - ---------- - op : list - operator in conventional form. - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - subset : list, optional - grid subsets used for the operator ,e.g. ['central','fb','ff'] - true_grid : torch.Tensor, optional - initial grid for coefficient in form of torch.Tensor mapping - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm for subset - grid types + Changes the operator in conventional form to the input one. + Returns: + final form of differential operator used in the algorithm for subset grid types. """ grid_dict = self.grid_sort(self.grid) nvars = self.grid.shape[-1] @@ -403,23 +347,11 @@ def operator_prepare(self): return prepared_operator - def bnd_prepare(self): + def bnd_prepare(self) -> Union[list, None]: """ - Parameters - ---------- - bconds : list - boundary in conventional form (see examples) - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - - Returns - ------- - prepared_bnd : list - - boundary in input form - + Prepares boundary conditions from conventional form to input form. + Returns: + boundary in input form. """ grid_dict = self.grid_sort(self.grid) bconds1 = self.bnd_unify(self.bconds) @@ -451,13 +383,31 @@ def bnd_prepare(self): class Equation_autograd(EquationMixin): + """ + Prepares equation for autograd method (i.e., from conventional form to input form). + """ def __init__(self, grid, operator, bconds): + """ + Prepares equation for autograd method (i.e., from conventional form to input form). + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + """ self.grid = grid self.operator = operator self.bconds = bconds @staticmethod - def expand_coeffs_autograd(unified_operator): + def expand_coeffs_autograd(unified_operator: list) -> list: + """ + Prepares equation's coefficients for autograd method. + + Args: + unified_operator: result input_preprocessing.EquationMixin.operator_unify. + Returns: + prepared autograd operator. + """ autograd_op=[] for term in unified_operator: coeff1 = term[0] @@ -474,19 +424,11 @@ def expand_coeffs_autograd(unified_operator): autograd_op.append([coeff, prod, power, variables]) return autograd_op - def operator_prepare(self): + def operator_prepare(self) -> list: """ - Changes the operator in conventional form to the input one - - Parameters - ---------- - op : list - operator in conventional form. - Returns - ------- - operator_list : list - final form of differential operator used in the algorithm - + Changes the operator in conventional form to the input one. + Returns: + final form of differential operator used in the algorithm. """ if type(self.operator) is list and type(self.operator[0]) is dict: num_of_eq = len(self.operator) @@ -504,23 +446,11 @@ def operator_prepare(self): return prepared_operator - def bnd_prepare(self): + def bnd_prepare(self) -> Union[list,None]: """ - Parameters - ---------- - bconds : list - boundary in conventional form (see examples) - grid : torch.Tensor - grid with sotred nodes (see grid_prepare) - h : float - derivative precision parameter. The default is 0.001. - - Returns - ------- - prepared_bnd : list - - boundary in input form - + Prepares boundary conditions from conventional form to input form. + Returns: + boundary in input form. """ bconds = self.bnd_unify(self.bconds) if bconds==None: @@ -546,18 +476,38 @@ def bnd_prepare(self): class Equation_mat(EquationMixin): + """ + Prepares equation for matrix optimization method (i.e., from conventional form to input form). + """ def __init__(self, grid, operator, bconds): + """ + Prepares equation for matrix optimization method (i.e., from conventional form to input form). + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + """ self.grid = grid self.operator = operator self.bconds = bconds - def operator_prepare(self): + def operator_prepare(self) -> list: + """ + Prepares operator from conventional form to input form + Returns: + prepared_operator: final form of differential operator used in the algorithm. + """ if type(self.operator) == dict: operator_list = self.op_dict_to_list(self.operator) unified_operator = self.operator_unify(operator_list) return [unified_operator] - def bnd_prepare(self): + def bnd_prepare(self) -> list: + """ + Prepares boundary conditions from conventional form to input form. + Returns: + final form of boundary conditions used in the algorithm. + """ prepared_bconds=[] bconds = self.bnd_unify(self.bconds) for bnd in bconds: @@ -587,14 +537,35 @@ def bnd_prepare(self): class Equation(): - def __init__(self, grid, operator, bconds, h=0.001, inner_order=1, boundary_order=2): + """ + Interface for preparing equations due to chosen calculation method. + """ + def __init__(self, grid: torch.Tensor, operator: Union[dict, list], bconds: list, + h: float = 0.001, inner_order: int = 1, boundary_order: int = 2): + """ + Interface for preparing equations due to chosen calculation method. + Args: + grid: array of a n-D points. + operator: equation. + bconds: boundary conditions. + h: discretizing parameter in finite difference method (i.e., grid resolution for scheme). + inner_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 + """ self.grid = grid self.operator = operator self.bconds = bconds self.h = h self.inner_order = inner_order self.boundary_order = boundary_order - def set_strategy(self, strategy): + def set_strategy(self, strategy: str) -> Union[Equation_NN, Equation_mat, Equation_autograd]: + """ + Setting the calculation method. + Args: + strategy: Calculation method. (i.e., "NN", "autograd", "mat"). + Returns: + A given calculation method. + """ if strategy == 'NN': return Equation_NN(self.grid, self.operator, self.bconds, h=self.h, inner_order=self.inner_order, boundary_order=self.boundary_order) if strategy == 'mat': diff --git a/tedeous/metrics.py b/tedeous/metrics.py index db676f38..941bd22c 100644 --- a/tedeous/metrics.py +++ b/tedeous/metrics.py @@ -1,7 +1,9 @@ import torch import numpy as np +from typing import Union, Any, Tuple -from points_type import Points_type +from tedeous.points_type import Points_type +from tedeous.input_preprocessing import * flatten_list = lambda t: [item for sublist in t for item in sublist] @@ -10,26 +12,24 @@ def take_derivative(self, value): raise NotImplementedError class Derivative_NN(DerivativeInt): - def __init__(self, model): + def __init__(self, model: torch.nn.Sequential): + """ + Taking numerical derivative for 'NN' method. + Args: + grid: array of a n-D points. + model: neural network. + """ self.model = model - def take_derivative (self, term, *args): + def take_derivative (self, term: Union[list, int, torch.Tensor], *args) -> torch.Tensor: """ - Axiluary function serves for single differential operator resulting field - derivation + Auxiliary function serves for single differential operator resulting field + derivation. - Parameters - ---------- - model : torch.Sequential - Neural network. - term : TYPE - differential operator in conventional form. - - Returns - ------- - der_term : torch.Tensor + Args: + term: differential operator in conventional form. + Returns: resulting field, computed on a grid. - """ # it is may be int, function of grid or torch.Tensor if type(term[0]) is tuple: @@ -57,15 +57,26 @@ def take_derivative (self, term, *args): # Here we want to apply differential operators for every term in the product der_term = der_term * grid_sum ** power[j] der_term = coeff * der_term - return der_term class Derivative_autograd(DerivativeInt): + """ + Taking numerical derivative for 'autograd' method. + """ def __init__(self, model): self.model = model @staticmethod - def nn_autograd(model, points, var, axis=[0]): + def nn_autograd(model: torch.nn.Sequential, points: torch.Tensor, var: int, axis: list = [0]) -> torch.Tensor : + """ + Computes derivative on the grid using autograd method. + Args: + model: neural network. + points: points, where numerical derivative is calculated. + axis: smth + Returns: + smth + """ points.requires_grad=True fi = model(points)[:,var].sum(0) for ax in axis: @@ -75,23 +86,15 @@ def nn_autograd(model, points, var, axis=[0]): return gradient_full - def take_derivative(self, term, grid_points): + def take_derivative(self, term: Any, grid_points: torch.Tensor) -> torch.Tensor: """ - Axiluary function serves for single differential operator resulting field - derivation - - Parameters - ---------- - model : torch.Sequential - Neural network. - term : TYPE - differential operator in conventional form. + Auxiliary function serves for single differential operator resulting field + derivation. - Returns - ------- - der_term : torch.Tensor + Args: + term: differential operator in conventional form. + Returns: resulting field, computed on a grid. - """ # it is may be int, function of grid or torch.Tensor if callable(term[0]): @@ -111,20 +114,29 @@ def take_derivative(self, term, grid_points): der = self.model(grid_points)[:, variables[j]].reshape(-1, 1) else: der = self.nn_autograd(self.model, grid_points, variables[j], axis=derivative) - der_term = der_term * der ** power[j] - der_term = coeff * der_term - return der_term class Derivative_mat(DerivativeInt): - def __init__(self, model): + def __init__(self, model: torch.Tensor): + """ + Taking numerical derivative for 'mat' method. + Args: + model: random matrix. + """ self.model = model @staticmethod - def derivative_1d(model,grid): - # print('1d>2d') + def derivative_1d(model: torch.Tensor, grid: torch.Tensor) -> torch.Tensor: + """ + Computes derivative in one dimension for matrix method. + Args: + model: random matrix. + grid: array of a n-D points. + Returns: + computed derivative along one dimension. + """ u=model.reshape(-1) x=grid.reshape(-1) @@ -140,8 +152,20 @@ def derivative_1d(model,grid): return du @staticmethod - def derivative(u_tensor, h_tensor, axis, scheme_order=1, boundary_order=1): - #print('shape=',u_tensor.shape) + def derivative(u_tensor: torch.Tensor, h_tensor: torch.Tensor, axis: int, + scheme_order: int = 1, boundary_order: int = 1) -> torch.Tensor: + """ + Computing derivative for 'matrix' method. + Args: + u_tensor: smth. + h_tensor: smth. + axis: axis along which the derivative is calculated. + scheme_order: accuracy inner order for finite difference. Default = 1 + boundary_order: accuracy boundary order for finite difference. Default = 2 + Returns: + computed derivative. + """ + if (u_tensor.shape[0]==1): du = Derivative_mat.derivative_1d(u_tensor,h_tensor) return du @@ -247,28 +271,23 @@ def derivative(u_tensor, h_tensor, axis, scheme_order=1, boundary_order=1): return du - def take_derivative(self, term, grid_points): + def take_derivative(self, term: Any, grid_points: torch.Tensor) -> torch.Tensor: """ - Axiluary function serves for single differential operator resulting field - derivation + Auxiliary function serves for single differential operator resulting field + derivation. - Parameters - ---------- - model : torch.Sequential - Neural network. - term : TYPE - differential operator in conventional form. - - Returns - ------- - der_term : torch.Tensor + Args: + term: differential operator in conventional form. + grid_points: grid points + Returns: resulting field, computed on a grid. - """ + # it is may be int, function of grid or torch.Tensor coeff = term[0] # this one contains product of differential operator operator_product = term[1] + print(type(grid_points)) # float that represents power of the differential term power = term[2] # initially it is an ones field @@ -290,9 +309,24 @@ def take_derivative(self, term, grid_points): class Derivative(): def __init__(self, model): + """ + Interface for taking numerical derivative due to chosen calculation method. + + Args: + model: neural network or matrix depending on the selected mode. + """ self.model = model - def set_strategy(self, strategy): + def set_strategy(self, strategy: str) -> Union[Derivative_NN, Derivative_autograd, Derivative_mat]: + """ + Setting the calculation method. + + Args: + strategy: Calculation method. (i.e., "NN", "autograd", "mat"). + Returns: + equation in input form for a given calculation method. + """ + if strategy == 'NN': return Derivative_NN(self.model) @@ -304,7 +338,9 @@ def set_strategy(self, strategy): class Solution(): - def __init__(self, grid, equal_cls, model, mode): + def __init__(self, grid: torch.Tensor, equal_cls: Union[Equation_NN, + Equation_mat,Equation_autograd], + model: Union[torch.nn.Sequential, torch.Tensor], mode: str): self.grid = grid self.prepared_operator = equal_cls.operator_prepare() self.prepared_bconds = equal_cls.bnd_prepare() @@ -316,22 +352,15 @@ def __init__(self, grid, equal_cls, model, mode): elif self.mode=='autograd' or self.mode=='mat': self.sorted_grid = self.grid - def apply_operator(self, operator, grid_points): + def apply_operator(self, operator: list, grid_points) -> torch.Tensor: """ Deciphers equation in a single grid subset to a field. - - Parameters - ---------- - model : torch.Sequential - Neural network. - operator : list - Single (len(subset)==1) operator in input form. See + Args: + operator: Single (len(subset)==1) operator in input form. See input_preprocessing.operator_prepare() - - Returns - ------- - total : torch.Tensor - + grid_points: grid points + Returns: + smth """ derivative = Derivative(self.model).set_strategy(self.mode).take_derivative @@ -343,27 +372,29 @@ def apply_operator(self, operator, grid_points): total = dif return total - def apply_bconds_set(self, operator_set): + def apply_bconds_set(self, operator_set: list) -> torch.Tensor: """ Deciphers equation in a whole grid to a field. - Parameters - ---------- - model : torch.Sequential - Neural network. - operator : list - Multiple (len(subset)>=1) operators in input form. See - input_preprocessing.operator_prepare() - Returns - ------- - total : torch.Tensor - """ + Args: + operator_set: Multiple (len(subset)>=1) operators in input form. See + input_preprocessing.operator_prepare(). + Returns: + smth + """ field_part = [] for operator in operator_set: field_part.append(self.apply_operator(operator, None)) field_part = torch.cat(field_part) return field_part - def b_op_val_calc(self, bcond): + def b_op_val_calc(self, bcond: list) -> torch.Tensor: + """ + Auxiliary function. Serves only to evaluate operator on the boundary. + Args: + bcond: terms of prepared boundary conditions (see input_preprocessing.bnd_prepare) in input form. + Returns: + calculated operator on the boundary. + """ b_coord = bcond[0] bop = bcond[1] var = bcond[3] @@ -413,7 +444,13 @@ def b_op_val_calc(self, bcond): return b_op_val - def apply_bconds_operator(self): + def apply_bconds_operator(self) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Auxiliary function. Serves only to evaluate boundary values and true boundary values. + Returns: + * **b_val** -- calculated model boundary values.\n + * **true_b_val** -- true grid boundary values. + """ true_b_val_list = [] b_val_list = [] @@ -434,7 +471,14 @@ def apply_bconds_operator(self): return b_val, true_b_val - def l2_loss(self, lambda_bound=10): + def l2_loss(self, lambda_bound: Union[int, float] = 10) -> torch.Tensor: + """ + Computes l2 loss. + Args: + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + Returns: + model loss. + """ if self.mode == 'mat' or self.mode == 'autograd': if self.prepared_bconds == None: print('No bconds is not possible, returning infinite loss') @@ -472,28 +516,24 @@ def l2_loss(self, lambda_bound=10): loss = torch.sum(torch.mean((op) ** 2, 0)) + lambda_bound * torch.sum(torch.mean((b_val - true_b_val) ** 2, 0)) return loss - def weak_loss(self, weak_form, lambda_bound=10): - ''' + def weak_loss(self, weak_form: Union[None, list], lambda_bound: Union[int, float] = 10) -> torch.Tensor: + """ Weak solution of O/PDE problem. - - Parameters: - --------- - weak_form: list of basis functions - lambda_bound: const regularization parameter - --------- - ''' - def integration(func, grid, pow='sqrt'): - ''' - Function realize 1-space/multiple integrands, - where func=(L(u)-f)*weak_form subintegrands function and - definite integral parameter is grid - Parameters: - ---------- - func: torch.tensor - grid: torch.tensor - pow: string (sqrt ar abs) power of func points - ---------- - ''' + Args: + weak_form: list of basis functions. + lambda_bound: const regularization parameter. + Returns: + model loss. + """ + def integration(func: torch.Tensor, grid: torch.Tensor, pow: str ='sqrt'): + """ + Function realize 1-space/multiple integrands, where func=(L(u)-f)*weak_form subintegrands function and + definite integral parameter is grid. + Args: + func: basis function. + grid: array of a n-D points. + pow: (sqrt ar abs) power of func points. + """ if grid.shape[-1]==1: column = -1 else: @@ -570,7 +610,15 @@ def integration(func, grid, pow='sqrt'): return loss - def loss_evaluation(self, lambda_bound=10, weak_form=None): + def loss_evaluation(self, lambda_bound: Union[int, float] = 10, weak_form: Union[None, list] = None) -> Union[l2_loss, weak_loss]: + """ + Setting the required loss calculation method. + Args: + lambda_bound: an arbitrary chosen constant, influence only convergence speed. + weak_form: list of basis functions. + Returns: + A given calculation method. + """ if weak_form == None or weak_form == []: return self.l2_loss(lambda_bound=lambda_bound) else: diff --git a/tedeous/points_type.py b/tedeous/points_type.py index 1c2883ab..dadb35e9 100644 --- a/tedeous/points_type.py +++ b/tedeous/points_type.py @@ -1,9 +1,11 @@ import numpy as np import torch from scipy.spatial import Delaunay + +from typing import Union from tedeous.device import set_device -device = set_device() +device = set_device('cpu') class Points_type(): """ Discretizing the grid and allocating subsets for Finite Difference method. @@ -127,7 +129,17 @@ def grid_sort(grid: torch.Tensor) -> dict: return grid_dict @staticmethod - def bnd_sort(grid_dict, b_coord): + def bnd_sort(grid_dict: dict, b_coord: torch.Tensor) -> Union[dict, list]: + """ + smth + + Args: + grid_dict: + b_coord: + Returns: + sorted bnd + + """ def bnd_to_dict(grid_dict, b_coord): bnd_dict = {} From 013d1ef2e8b9b19a96af80fd6ac28704aa77380c Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 11 Jan 2023 19:01:32 +0300 Subject: [PATCH 224/225] Class description fix --- docs/source/modules/cache.rst | 4 +-- docs/source/modules/config.rst | 4 +-- docs/source/modules/finite_diffs.rst | 4 +-- docs/source/modules/input_preprocessing.rst | 38 +++++++++++++++++++-- docs/source/modules/metrics.rst | 29 ++++++++++++++-- docs/source/modules/points_type.rst | 4 +-- docs/source/modules/solver.rst | 7 ++-- 7 files changed, 76 insertions(+), 14 deletions(-) diff --git a/docs/source/modules/cache.rst b/docs/source/modules/cache.rst index 76e2214c..7d7988f9 100644 --- a/docs/source/modules/cache.rst +++ b/docs/source/modules/cache.rst @@ -1,6 +1,6 @@ Cache ===== -..automodule:: cache - :members: +.. autoclass:: tedeous.cache.Model_prepare + :no-inherited-members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/config.rst b/docs/source/modules/config.rst index fc1411ca..3b84cae0 100644 --- a/docs/source/modules/config.rst +++ b/docs/source/modules/config.rst @@ -1,6 +1,6 @@ Config ====== -..automodule:: config - :members: +.. autoclass:: tedeous.config.Config + :no-inherited-members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/finite_diffs.rst b/docs/source/modules/finite_diffs.rst index 6f8396f4..55ff2e04 100644 --- a/docs/source/modules/finite_diffs.rst +++ b/docs/source/modules/finite_diffs.rst @@ -1,6 +1,6 @@ Finite difference method ======================== -..automodule:: finite_diffs - :members: +.. automodule:: tedeous.finite_diffs.Finite_diffs + :no-inherited-members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/input_preprocessing.rst b/docs/source/modules/input_preprocessing.rst index a7ecef95..c1efec33 100644 --- a/docs/source/modules/input_preprocessing.rst +++ b/docs/source/modules/input_preprocessing.rst @@ -1,6 +1,40 @@ Input preprocessing =================== -..automodule:: input_preprocessing - :members: +class EquationMixin +~~~~~~~~~~~~~~~~~~~~ + +.. autoclass:: tedeous.input_preprocessing.EquationMixin + :no-inherited-members: + :no-undoc-members: + + +class EquationInt +~~~~~~~~~~~~~~~~~ +.. autoclass:: tedeous.input_preprocessing.EquationInt + :no-inherited-members: + :no-undoc-members: + + +class Equation_NN +~~~~~~~~~~~~~~~~~ + +.. autoclass:: tedeous.input_preprocessing.Equation_NN + :no-inherited-members: + :no-undoc-members: + + +class Equation_mat +~~~~~~~~~~~~~~~~~~ + +.. autoclass:: tedeous.input_preprocessing.Equation_mat + :no-inherited-members: + :no-undoc-members: + + +class Equation_autograd +~~~~~~~~~~~~~~~~~~~~~~~ + +.. autoclass:: tedeous.input_preprocessing.Equation_autograd + :no-inherited-members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/metrics.rst b/docs/source/modules/metrics.rst index 0dbe90d7..682a570b 100644 --- a/docs/source/modules/metrics.rst +++ b/docs/source/modules/metrics.rst @@ -1,5 +1,30 @@ Metrics ======= -..automodule:: metrics - :members: + +class Derivative +~~~~~~~~~~~~~~~~ + +.. autoclass:: tedeous.metrics.Derivative + :no-inherited-members: + :no-undoc-members: + +class Derivative_NN +~~~~~~~~~~~~~ + +.. autoclass:: tedeous.metrics.Derivative_NN + :no-inherited-members: + :no-undoc-members: + +class Derivative_autograd +~~~~~~~~~~~~~ + +.. autoclass:: tedeous.metrics.Derivative_autograd + :no-inherited-members: + :no-undoc-members: + +class Derivative_mat +~~~~~~~~~~~~~ + +.. autoclass:: tedeous.metrics.Derivative_mat + :no-inherited-members: :no-undoc-members: \ No newline at end of file diff --git a/docs/source/modules/points_type.rst b/docs/source/modules/points_type.rst index 0caa22b8..f46a0fa6 100644 --- a/docs/source/modules/points_type.rst +++ b/docs/source/modules/points_type.rst @@ -5,6 +5,6 @@ Points type Points type ~~~~~~~~~~~ -..automodule:: points_type - :members: +.. autoclass:: tedeous.points_type.Points_type + :no-inherited-members: :no-undoc-members: diff --git a/docs/source/modules/solver.rst b/docs/source/modules/solver.rst index 7bc3c36c..d15ec3d7 100644 --- a/docs/source/modules/solver.rst +++ b/docs/source/modules/solver.rst @@ -2,6 +2,9 @@ Solver ====== -..automodule:: solver - :members: +Solver +~~~~~~ + +.. automodule:: tedeous.solver + :no-inherited-members: :no-undoc-members: \ No newline at end of file From d3470c5133291be831a9200fdc515e81d4dd7906 Mon Sep 17 00:00:00 2001 From: Nikita Demyanchuk Date: Wed, 11 Jan 2023 19:19:15 +0300 Subject: [PATCH 225/225] Update finite_diffs.rst --- docs/source/modules/finite_diffs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/modules/finite_diffs.rst b/docs/source/modules/finite_diffs.rst index 55ff2e04..f37a1258 100644 --- a/docs/source/modules/finite_diffs.rst +++ b/docs/source/modules/finite_diffs.rst @@ -1,6 +1,6 @@ Finite difference method ======================== -.. automodule:: tedeous.finite_diffs.Finite_diffs +.. automodule:: tedeous.finite_diffs :no-inherited-members: :no-undoc-members: \ No newline at end of file