Commit bdb1f741 authored by Stephan Rave's avatar Stephan Rave

Merge branch 'master' into releasenotes_2020_1

parents 845cb746 a0c8bae8
Pipeline #62954 passed with stages
in 54 minutes and 50 seconds
......@@ -5,7 +5,7 @@
# the container, local dev needs it in path from mounted src
# we trick docker into fulfilling both roles via a conditional ONBUILD
# if you want to use the local dev setup, see docker/docker-compose.yml
ARG BASE=pymor/jupyter_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
ARG BASE=pymor/jupyter_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
ARG BUILD_ENV=binder
FROM $BASE as image_binder
......
......@@ -20,8 +20,8 @@ stages:
except:
- /^staging/.*$/i
variables:
PYPI_MIRROR_TAG: d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
CI_IMAGE_TAG: d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
PYPI_MIRROR_TAG: 97eb2abc080637d49c3db8f428ddff14748710ef
CI_IMAGE_TAG: 97eb2abc080637d49c3db8f428ddff14748710ef
PYMOR_HYPOTHESIS_PROFILE: ci
.pytest:
......@@ -142,7 +142,7 @@ stages:
.sanity_checks:
extends: .test_base
image: pymor/ci_sanity:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/ci_sanity:97eb2abc080637d49c3db8f428ddff14748710ef
stage: sanity
#******** end definition of base jobs *********************************************************************************#
......@@ -167,18 +167,18 @@ minimal_cpp_demo:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
script: ./.ci/gitlab/cpp_demo.bash
mpi 3 6:
extends: .pytest
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -194,9 +194,9 @@ mpi 3 7:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -212,9 +212,9 @@ mpi 3 8:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -230,9 +230,9 @@ notebooks_dir 3 6:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -248,9 +248,9 @@ notebooks_dir 3 7:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -266,9 +266,9 @@ notebooks_dir 3 8:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -284,9 +284,9 @@ pip_installed 3 6:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -302,9 +302,9 @@ pip_installed 3 7:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -320,9 +320,9 @@ pip_installed 3 8:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -338,9 +338,9 @@ vanilla 3 6:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -356,9 +356,9 @@ vanilla 3 7:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -374,9 +374,9 @@ vanilla 3 8:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -392,9 +392,9 @@ numpy_git 3 8:
except:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -410,9 +410,9 @@ oldest 3 6:
except:
- schedules
services:
- name: pymor/pypi-mirror_oldest_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_oldest_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
script:
- |
if [[ "$CI_COMMIT_REF_NAME" == *"github/"* ]]; then
......@@ -429,9 +429,9 @@ ci_weekly 3 6:
only:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.6:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.6:97eb2abc080637d49c3db8f428ddff14748710ef
script: ./.ci/gitlab/test_vanilla.bash
ci_weekly 3 7:
......@@ -440,9 +440,9 @@ ci_weekly 3 7:
only:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.7:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.7:97eb2abc080637d49c3db8f428ddff14748710ef
script: ./.ci/gitlab/test_vanilla.bash
ci_weekly 3 8:
......@@ -451,9 +451,9 @@ ci_weekly 3 8:
only:
- schedules
services:
- name: pymor/pypi-mirror_stable_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
- name: pymor/pypi-mirror_stable_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
alias: pypi_mirror
image: pymor/testing_py3.8:d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
image: pymor/testing_py3.8:97eb2abc080637d49c3db8f428ddff14748710ef
script: ./.ci/gitlab/test_vanilla.bash
submit vanilla 3 6:
......
......@@ -2,6 +2,6 @@ DOCKER_BASE_PYTHON=3.7
PYMOR_TEST_SCRIPT=vanilla
PYPI_MIRROR=stable
PYMOR_TEST_OS=debian_buster
PYPI_MIRROR_TAG=d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
CI_IMAGE_TAG=d4cc6ff37b42c8c36d1a4d533399d28fa6c5edb2
PYPI_MIRROR_TAG=97eb2abc080637d49c3db8f428ddff14748710ef
CI_IMAGE_TAG=97eb2abc080637d49c3db8f428ddff14748710ef
PYMOR_HYPOTHESIS_PROFILE=dev
......@@ -186,7 +186,7 @@ we provide bindings for the following solver libraries:
Wrapper classes for the NGSolve finite element library are shipped with pyMOR
(`pymor.bindings.ngsolve`).
For an example see `pymordemos.thermalblock_simple`.
It is tested using version v6.2.2001.
It is tested using version v6.2.2006.
Do not hesitate to contact
......
......@@ -230,7 +230,7 @@ For the reduced basis we have:
print(RB.dim)
Let us check if the reduced basis really is orthonormal with respect to
the H1-product. For this we use the :meth:`~pymor.operators.interface.Operator.apply2`
the H1-product. For this we use the :meth:`~pymor.vectorarrays.interface.VectorArray.gramian`
method:
.. jupyter-execute::
......@@ -272,7 +272,7 @@ Learning more
As a next step, you should read our :ref:`technical_overview` which discusses the
most important concepts and design decisions behind pyMOR. You can also follow our
growing set of tutorials which focus on specific aspects of pyMOR.
growing set of :doc:`tutorials`, which focus on specific aspects of pyMOR.
Should you have any problems regarding pyMOR, questions or
`feature requests <https://github.com/pymor/pymor/issues>`_, do not hesitate
......
......@@ -16,12 +16,8 @@ provided for getting started quickly.
.. toctree::
getting_started
technical_overview
tutorial01
tutorial-rb
tutorial_bt
tutorial_mor_with_anns
tutorial_external_solver
environment
tutorials
release_notes
bibliography
......
.. _tutorial-rb:
Tutorial: Building a Reduced Basis
==================================
......@@ -79,7 +77,7 @@ First we import everything we need:
Then we build a 3-by-3 thermalblock problem that we discretize using pyMOR's
:mod:`builtin discretizers <pymor.discretizers.builtin>` (see
:doc:`tutorial01` for an introduction to pyMOR's discretization toolkit).
:doc:`tutorial_builtin_discretizer` for an introduction to pyMOR's discretization toolkit).
.. jupyter-execute::
......@@ -779,4 +777,6 @@ a certain degree, whereas the weak-greedy algorithm could select the snapshots f
|parameter values|.
Download the code: :jupyter-download:script:`tutorial-rb` :jupyter-download:notebook:`tutorial-rb`
Download the code:
:jupyter-download:script:`tutorial_basis_generation`
:jupyter-download:notebook:`tutorial_basis_generation`
.. _tutorial_bt:
Tutorial: Reducing a heat equation using balanced truncation
============================================================
......@@ -50,7 +48,7 @@ In pyMOR, these models are captured by |LTIModels| from the
There are many ways of building an |LTIModel|.
Here, we show how to build one from custom matrices instead of using a
discretizer as in :doc:`tutorial01` and the
discretizer as in :doc:`tutorial_builtin_discretizer` and the
:meth:`~pymor.models.basic.InstationaryModel.to_lti` of |InstationaryModel|.
In particular, we will use the
:meth:`~pymor.models.iosys.LTIModel.from_matrices` method of |LTIModel|, which
......
.. _tutorial01:
Tutorial 1: Using pyMOR’s discretization toolkit
================================================
Tutorial: Using pyMOR’s discretization toolkit
==============================================
.. include:: jupyter_init.txt
......@@ -501,4 +499,6 @@ corresponding stiffness matrices. Note that an additional summand
appears which ensures correct enforcement of Dirichlet boundary values
for all possible parameter value combinations.
Download the code: :jupyter-download:script:`tutorial01` :jupyter-download:notebook:`tutorial01`
Download the code:
:jupyter-download:script:`tutorial_builtin_discretizer`
:jupyter-download:notebook:`tutorial_builtin_discretizer`
.. _tutorial_external_solver:
Tutorial: Binding an external PDE solver to pyMOR
=================================================
......@@ -163,6 +161,7 @@ To be able to use this extension module we need to insert the build directory in
interpreter looks for things to import. Afterwards we can import the module and create and use the exported classes.
.. jupyter-kernel::
.. include:: jupyter_init.txt
.. jupyter-execute::
import sys
......@@ -178,10 +177,6 @@ interpreter looks for things to import. Afterwards we can import the module and
Using the exported Python classes with pyMOR
--------------------------------------------
..
This only works after merging https://github.com/pymor/pymor/pull/1013
In :doc:`tutorial-rb`
All of pyMOR's algorithms operate on |VectorArray| and |Operator| objects that all share the same programming interface. To be able to use
our Python `model.Vector` and `model.DiffusionOperator` in pyMOR, we have to provide implementations of
|VectorArray|, |VectorSpace| and |Operator| that wrap the classes defined in the extension module
......
.. _tutorial_mor_with_anns:
Tutorial: Model order reduction with artificial neural networks
===============================================================
......@@ -83,7 +81,7 @@ Dirichlet boundary conditions
u((x_1, x_2), \mu) = 2x_1\mu + 0.5,\quad x=(x_1, x_2) \in \partial\Omega.
We discretize the problem using pyMOR's builtin discretization toolkit as
explained in :doc:`tutorial01`:
explained in :doc:`tutorial_builtin_discretizer`:
.. jupyter-execute::
......
pyMOR Tutorials
***************
.. toctree::
tutorial_builtin_discretizer
tutorial_basis_generation
tutorial_bt
tutorial_mor_with_anns
tutorial_external_solver
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment