Skip to content

Commit 6e9dfd1

Browse files
committed
make non essential parameters optional
1 parent d1b0c4e commit 6e9dfd1

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

src/compas/numerical/dr/dr_numpy.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ def __init__(self, c):
3232
self.b = 0.5 * (1 + self.a)
3333

3434

35-
def dr_numpy(vertices, edges, fixed, loads, qpre, fpre, lpre, linit, E, radius,
35+
def dr_numpy(vertices, edges, fixed, loads, qpre,
36+
fpre=None, lpre=None, linit=None, E=None, radius=None,
3637
callback=None, callback_args=None, **kwargs):
3738
"""Implementation of the dynamic relaxation method for form findong and analysis
3839
of articulated networks of axial-force members.
@@ -49,15 +50,15 @@ def dr_numpy(vertices, edges, fixed, loads, qpre, fpre, lpre, linit, E, radius,
4950
XYZ components of the loads on the vertices.
5051
qpre : list
5152
Prescribed force densities in the edges.
52-
fpre : list
53+
fpre : list, optional
5354
Prescribed forces in the edges.
54-
lpre : list
55+
lpre : list, optinonal
5556
Prescribed lengths of the edges.
56-
linit : list
57+
linit : list, optional
5758
Initial length of the edges.
58-
E : list
59+
E : list, optional
5960
Stiffness of the edges.
60-
radius : list
61+
radius : list, optional
6162
Radius of the edges.
6263
callback : callable, optional
6364
User-defined function that is called at every iteration.
@@ -113,6 +114,15 @@ def dr_numpy(vertices, edges, fixed, loads, qpre, fpre, lpre, linit, E, radius,
113114
num_e = len(edges)
114115
free = list(set(range(num_v)) - set(fixed))
115116
# --------------------------------------------------------------------------
117+
# input processing
118+
# --------------------------------------------------------------------------
119+
qpre = qpre or [0.0 for _ in range(num_e)]
120+
fpre = fpre or [0.0 for _ in range(num_e)]
121+
lpre = lpre or [0.0 for _ in range(num_e)]
122+
linit = linit or [0.0 for _ in range(num_e)]
123+
E = E or [0.0 for _ in range(num_e)]
124+
radius = radius or [0.0 for _ in range(num_e)]
125+
# --------------------------------------------------------------------------
116126
# attribute arrays
117127
# --------------------------------------------------------------------------
118128
x = array(vertices, dtype=float).reshape((-1, 3)) # m

0 commit comments

Comments
 (0)