From 5ca94e819b63fb88582f7c079ffac27e597d3a2a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Mon, 20 Nov 2017 23:46:25 -0600 Subject: [PATCH] ChainedDiscretizationConnection: allow empty list of connections if specifying from_discr --- .../discretization/connection/__init__.py | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/meshmode/discretization/connection/__init__.py b/meshmode/discretization/connection/__init__.py index bb5a0bf9..da982c9d 100644 --- a/meshmode/discretization/connection/__init__.py +++ b/meshmode/discretization/connection/__init__.py @@ -211,15 +211,25 @@ class ChainedDiscretizationConnection(DiscretizationConnection): .. attribute:: connections """ - def __init__(self, connections): - if not connections: - raise ValueError("connections may not be empty") + def __init__(self, connections, from_discr=None): + if connections: + if from_discr is not None: + assert from_discr is connections[0].from_discr + else: + from_discr = connections[0].from_discr + is_surjective = all(cnx.is_surjective for cnx in connections) + else: + if from_discr is None: + raise ValueError("connections may not be empty if from_discr " + "is not specified") + + to_discr = from_discr + + # It's an identity + is_surjective = True super(ChainedDiscretizationConnection, self).__init__( - connections[0].from_discr, - connections[-1].to_discr, - is_surjective=all( - cnx.is_surjective for cnx in connections)) + from_discr, to_discr, is_surjective=is_surjective) self.connections = connections -- GitLab