Unverified Commit 7e309311 authored by René Fritze's avatar René Fritze Committed by GitHub
Browse files

Finish release notes for 2021.1 (#1414)

parents 89016bbf 72eb8e38
Pipeline #102829 passed with stages
in 86 minutes and 48 seconds
......@@ -48,11 +48,36 @@ The reductor also implements a dense method for small to medium problems.
Time-dependent parameter values
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- `[#1379] Time dependent parameter values <https://github.com/pymor/pymor/pull/1379>`_
We have extended the handling of |Parameters| in pyMOR to allow time-dependent
|parameter values|. Such parameter values are specified by instantiating a
:class:`~pymor.parameters.base.Mu` object with a |Function| that maps the current
time to the respective parameter value. The function is automatically evaluated
at `mu['t']` and correspondingly updated in `mu.with_(t=new_time)` such that
the time dependence of the values is completely transparent to their consumer.
This allows existing ROMs to be used with time-dependent parameter values
without any changes in the MOR algorithm. For further details, see
`[#1379] <https://github.com/pymor/pymor/pull/1379>`_.
Additional new features
^^^^^^^^^^^^^^^^^^^^^^^
Symbolic ExpressionFunctions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A simple symbolic math expression library has been added to pyMOR, which is now
used by |ExpressionFunction| and |ExpressionParameterFunctional| to parse and
evaluate the given expressions, see
`[#1277] <https://github.com/pymor/pymor/pull/1277>`_. As immediate benefits,
the :attr:`shape <pymor.analyticalproblems.functions.Function.shape_range>`
of the expression is now automatically determined and the expression is
automatically vectorized correctly. In particular, there is no longer a need to
add `...` to indexing expressions. Further, malformed expressions now lead
to meaningful error messages at parse time.
In the future, conversion routines will be added to make the expression library
usable for :mod:`~pymor.discretizers` that use external PDE solvers, such that
the same |ExpressionFunction| can be used for different PDE solver backends.
Output reductor using ANNs
~~~~~~~~~~~~~~~~~~~~~~~~~~
To further extend the neural network based reductors, in
......@@ -70,11 +95,35 @@ training routines have been separated from the reductors.
Improvements to the HAPOD algorithm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- `[#1322] Various Improvements to the HAPOD algorithm (v2) <https://github.com/pymor/pymor/pull/1322>`_
Empirical Interpolation improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- `[#1240] Several EI improvements <https://github.com/pymor/pymor/pull/1240>`_
pyMOR's implementation of
`the HAPOD algorithm <https://epubs.siam.org/doi/abs/10.1137/16M1085413>`_
has seen several significant improvements in
`[#1322] <https://github.com/pymor/pymor/pull/1322>`_:
- :func:`~pymor.algorithms.hapod.hapod` now launches its own asyncio event
loop in order to avoid conflicts with already running event loops
(e.g. when running from jupyter).
- It is now possible to explicitly specify that a node has to be processed
after certain other nodes. In particular, this can be used to ensure the
right execution order for incremental POD computations.
- HAPOD trees are now created dynamically, which should significantly simplify
specifying own tree topologies.
- :func:`~pymor.algorithms.hapod.dist_hapod` now has an `arity` argument, which
allows to control the number of intermediate POD levels.
- :func:`~pymor.algorithms.hapod.inc_hapod` now accepts arbitrary iterables for
the snapshot data, which makes it easy to incrementally compute the data
while computing the POD.
Improved support for Empirical Interpolation of functions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The :func:`~pymor.algorithms.ei.ei_greedy` algorithm has been improved, in
particular to make it more useful for the interpolation of coefficient
|Functions|. Based on these improvements, an
:func:`~pymor.algorithms.ei.interpolate_function` method has been added which
creates an :class:`~pymor.analyticalproblems.functions.EmpiricalInterpolatedFunction`
from an arbitrary pyMOR |Function|. The `function_ei` demo script
demonstrates the new functionality. For further details, see
`[#1240] <https://github.com/pymor/pymor/pull/1240>`_.
Methods for exporting matrices of system models
......@@ -85,14 +134,13 @@ for constructing models from matrices.
In `[#1309] <https://github.com/pymor/pymor/pull/1309>`_,
the corresponding `to_*` methods were added for exporting matrices from a model.
pyMOR is now a pure-Python package
pyMOR is now a pure Python package
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- `[#1314] Replace all Cython modules by equivalent NumPy code <https://github.com/pymor/pymor/pull/1314>`_
All Cython modules in pyMOR's discretization toolkit have been replaced by
equivalent |NumPy| code, see `[#1314] <https://github.com/pymor/pymor/pull/1314>`_.
As a result, pyMOR is now a pure Python package, which should significantly
simplify pyMOR's installation when no pre-built binary wheels are available.
Symbolic ExpressionFunctions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- `[#1277] Use symbolic expressions in ExpressionFunction <https://github.com/pymor/pymor/pull/1277>`_
Backward incompatible changes
......@@ -100,9 +148,17 @@ Backward incompatible changes
Drop python 3.6 support
~~~~~~~~~~~~~~~~~~~~~~~
Support for Python 3.6 has been dropped in pyMOR 2021.1
`[#1302] <https://github.com/pymor/pymor/pull/1302>`_. The minimum supported
version now is Python 3.7.
Symbolic ExpressionFunctions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Due to the improvements in `[#1277] <https://github.com/pymor/pymor/pull/1277>`_,
the signature of |ExpressionFunction| has changed. To use existing code with
pyMOR 2021.1, the `shape_range` argument has to be removed from all
instantiations of |ExpressionFunction|. Further, all occurrences of `...`
have to be removed in indexing expressions.
Further notable improvements
......@@ -114,7 +170,6 @@ Further notable improvements
- `[#1270] Simplify SecondOrderModel-related operators <https://github.com/pymor/pymor/pull/1270>`_
- `[#1294] Let sample_randomly return a Mu instance in case count=None <https://github.com/pymor/pymor/pull/1294>`_
- `[#1296] Simplify semantics of assemble_lincomb / fix #1276 <https://github.com/pymor/pymor/pull/1296>`_
- `[#1302] Drop python 3.6 support <https://github.com/pymor/pymor/pull/1302>`_
- `[#1304] Several improvements to Qt-based visualizations <https://github.com/pymor/pymor/pull/1304>`_
- `[#1309] Add methods to models.iosys for exporting matrices <https://github.com/pymor/pymor/pull/1309>`_
- `[#1317] Add FenicsMatrixOperator._real_apply_inverse_adjoint_one_vector <https://github.com/pymor/pymor/pull/1317>`_
......
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