We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent f5db01a commit c6c8046Copy full SHA for c6c8046
2 files changed
qmat/qdelta/__init__.py
@@ -144,9 +144,10 @@ def genCoeffs(self, k=None, form="Z2N", dTau=False):
144
gen = lambda k, copy=None: self.getSDelta(k)
145
else:
146
raise ValueError(f"form must be Z2N or N2N, not {form}")
147
- if isinstance(k, list):
+ try:
148
+ k = list(k)
149
out = [np.array([gen(_k, copy=False) for _k in k])]
- else:
150
+ except TypeError:
151
out = [gen(k)]
152
if dTau:
153
out += [self.dTau]
tests/test_qdelta/test_min.py
@@ -124,3 +124,25 @@ def testFlex(nNodes, nodeType, quadType):
124
QDelta1 = gen.getQDelta(1)
125
assert np.allclose(QDelta0, QDelta1), \
126
"default QDelta is not equal to k=1"
127
+
128
129
+@pytest.mark.parametrize("quadType", ["GAUSS", "RADAU-RIGHT"])
130
+@pytest.mark.parametrize("nodeType", NODE_TYPES)
131
+@pytest.mark.parametrize("nNodes", [2, 3, 4])
132
+def testJumper(nNodes, nodeType, quadType):
133
+ coll = Collocation(nNodes=nNodes, nodeType=nodeType, quadType=quadType)
134
+ nodes, Q = coll.nodes, coll.Q
135
+ k = np.arange(nNodes)+1
136
137
+ gen = module.Jumper(nodes=nodes)
138
+ genFlex = module.MIN_SR_FLEX(coll=coll)
139
+ QDeltas = gen.genCoeffs(k)
140
+ QDeltasFlex = genFlex.genCoeffs(k)
141
142
+ assert np.allclose(QDeltas, QDeltasFlex/2)
143
+ gen2 = module.FlexJumper(nodes=nodes)
+ QDeltas2 = gen2.genCoeffs(k)
+ assert np.allclose(QDeltas2[0], QDeltasFlex[0])
+ assert np.allclose(QDeltas2[1:], QDeltas[:-1])
0 commit comments