Commit 6c73bc25 authored by Stephan Rave's avatar Stephan Rave
Browse files

[docs] finish release notes for 2021.1

parent e86aa5b0
Pipeline #102129 failed with stages
in 46 minutes and 23 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 <>`_
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] <>`_.
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
`[#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 correctly vectorized. 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) <>`_
Empirical Interpolation improvements
- `[#1240] Several EI improvements <>`_
pyMOR's implementation of the
`HAPOD algorithm <>`_
has seen several significant improvements in
`[#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 form juypter).
- 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.
Better 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 new `function_ei` demo script
demonstrates the new functionality. For further details, see
`[#1240] <>`_.
Methods for exporting matrices of system models
......@@ -85,14 +134,13 @@ for constructing models from matrices.
In `[#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 <>`_
All Cython modules in pyMOR's discretization toolkit have been replaced by
equivalent |NumPy| code. 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 `[#1314] <>`_.
Symbolic ExpressionFunctions
- `[#1277] Use symbolic expressions in ExpressionFunction <>`_
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] <>`_. The minimum supported
version now is Python 3.7.
Symbolic ExpressionFunctions
Due to the improvements in `[#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 <>`_
- `[#1294] Let sample_randomly return a Mu instance in case count=None <>`_
- `[#1296] Simplify semantics of assemble_lincomb / fix #1276 <>`_
- `[#1302] Drop python 3.6 support <>`_
- `[#1304] Several improvements to Qt-based visualizations <>`_
- `[#1309] Add methods to models.iosys for exporting matrices <>`_
- `[#1317] Add FenicsMatrixOperator._real_apply_inverse_adjoint_one_vector <>`_
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