Skip to content

Commit 2710cbe

Browse files
author
andrewtliew
committed
- Renamed devo to devo_numpy.
- drx_numba rename, and updates due to some hpc.geometry renames. - EvoPlotter went missing. - Some __init__ updates. - Added beam stiffness to mass matrix calcs, updated drx_numpy _create_arrays().
1 parent 6f87676 commit 2710cbe

File tree

7 files changed

+270
-127
lines changed

7 files changed

+270
-127
lines changed

src/compas/hpc/__init__.py

Lines changed: 56 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -13,58 +13,62 @@
1313
For now, don't use it for anything important :)
1414
1515
16+
algorithms
17+
==========
18+
19+
.. autosummary::
20+
:toctree: generated/
21+
22+
drx_numba
23+
24+
25+
geometry
26+
========
27+
28+
.. autosummary::
29+
:toctree: generated/
30+
31+
sum_vectors_numba
32+
norm_vector_numba
33+
norm_vectors_numba
34+
length_vector_numba
35+
length_vector_xy_numba
36+
length_vector_sqrd_numba
37+
length_vector_sqrd_xy_numba
38+
scale_vector_numba
39+
scale_vector_xy_numba
40+
scale_vectors_numba
41+
scale_vectors_xy_numba
42+
normalize_vector_numba
43+
normalize_vector_xy_numba
44+
normalize_vectors_numba
45+
normalize_vectors_xy_numba
46+
power_vector_numba
47+
power_vectors_numba
48+
square_vector_numba
49+
square_vectors_numba
50+
add_vectors_numba
51+
add_vectors_xy_numba
52+
subtract_vectors_numba
53+
subtract_vectors_xy_numba
54+
multiply_vectors_numba
55+
multiply_vectors_xy_numba
56+
divide_vectors_numba
57+
divide_vectors_xy_numba
58+
cross_vectors_numba
59+
cross_vectors_xy_numba
60+
dot_vectors_numba
61+
dot_vectors_xy_numba
62+
multiply_matrices_numba
63+
multiply_matrix_vector_numba
64+
65+
1666
cuda
1767
====
1868
1969
.. autosummary::
2070
:toctree: generated/
2171
22-
cuda_diag
23-
cuda_eye
24-
cuda_get
25-
cuda_give
26-
cuda_ones
27-
cuda_random
28-
cuda_real
29-
cuda_reshape
30-
cuda_flatten
31-
cuda_tile
32-
cuda_zeros
33-
cuda_conj
34-
cuda_cross
35-
cuda_det
36-
cuda_dot
37-
cuda_eig
38-
cuda_hermitian
39-
cuda_inv
40-
cuda_normrow
41-
cuda_pinv
42-
cuda_svd
43-
cuda_trace
44-
cuda_transpose
45-
cuda_abs
46-
cuda_argmax
47-
cuda_argmin
48-
cuda_acos
49-
cuda_asin
50-
cuda_atan
51-
cuda_ceil
52-
cuda_cos
53-
cuda_cosh
54-
cuda_exp
55-
cuda_floor
56-
cuda_log
57-
cuda_max
58-
cuda_min
59-
cuda_mean
60-
cuda_sin
61-
cuda_sinh
62-
cuda_sqrt
63-
cuda_sum
64-
cuda_tan
65-
cuda_tanh
66-
cuda_device
67-
6872
6973
euler
7074
=====
@@ -87,20 +91,6 @@
8791
sync_folder_to_euler
8892
8993
90-
numba
91-
=====
92-
93-
.. autosummary::
94-
:toctree: generated/
95-
96-
numba_devo
97-
numba_drx
98-
numba_cross
99-
numba_vdot
100-
numba_dot
101-
numba_length
102-
103-
10494
opencl
10595
======
10696
@@ -110,14 +100,12 @@
110100
111101
"""
112102

113-
from .cuda import *
114-
from .numba import *
115-
# from .opencl import *
103+
from .geometry import *
116104
from .euler import *
105+
from .algorithms import *
117106

118-
from .cuda import __all__ as a
119-
from .numba import __all__ as b
120-
# from .opencl import __all__ as c
121-
from .euler import __all__ as d
107+
from .geometry import __all__ as a
108+
from .euler import __all__ as b
109+
from .algorithms import __all__ as c
122110

123-
__all__ = a + b + d
111+
__all__ = a + b + c
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from .drx_numba import drx_numba
2+
3+
from .drx_numba import __all__ as a
4+
5+
__all__ = a

src/compas/hpc/numba/drx.py renamed to src/compas/hpc/algorithms/drx_numba.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
from compas.numerical.algorithms.drx_numpy import _beam_data
1717
from compas.numerical.algorithms.drx_numpy import _create_arrays
1818

19-
from compas.hpc.numba.geometry import numba_cross
20-
from compas.hpc.numba.geometry import numba_vdot
21-
from compas.hpc.numba.geometry import numba_length
19+
from compas.hpc import cross_vectors_numba
20+
from compas.hpc import dot_vectors_numba
21+
from compas.hpc import length_vector_numba
2222

2323

2424
from time import time
@@ -31,11 +31,11 @@
3131

3232

3333
__all__ = [
34-
'numba_drx',
34+
'drx_numba',
3535
]
3636

3737

38-
def numba_drx(network, factor=1.0, tol=0.1, steps=10000, summary=0, update=False):
38+
def drx_numba(network, factor=1.0, tol=0.1, steps=10000, summary=0, update=False):
3939
""" Run Numba accelerated dynamic relaxation analysis.
4040
4141
Parameters:
@@ -198,33 +198,33 @@ def drx_solver(tol, steps, factor, u, v, X, ks, l0, f0, ind_c, ind_t, rows, cols
198198
Qa = Xi - Xs
199199
Qb = Xf - Xi
200200
Qc = Xf - Xs
201-
Qn = numba_cross(Qa, Qb)
201+
Qn = cross_vectors_numba(Qa, Qb)
202202
mu = 0.5 * (Xf - Xs)
203-
La = numba_length(Qa)
204-
Lb = numba_length(Qb)
205-
Lc = numba_length(Qc)
206-
LQn = numba_length(Qn)
207-
Lmu = numba_length(mu)
203+
La = length_vector_numba(Qa)
204+
Lb = length_vector_numba(Qb)
205+
Lc = length_vector_numba(Qc)
206+
LQn = length_vector_numba(Qn)
207+
Lmu = length_vector_numba(mu)
208208
a = arccos((La**2 + Lb**2 - Lc**2) / (2 * La * Lb))
209209
k = 2 * sin(a) / Lc
210210
ex = Qn / LQn
211211
ez = mu / Lmu
212-
ey = numba_cross(ez, ex)
212+
ey = cross_vectors_numba(ez, ex)
213213
K = k * Qn / LQn
214-
Kx = numba_vdot(K, ex) * ex
215-
Ky = numba_vdot(K, ey) * ey
214+
Kx = dot_vectors_numba(K, ex) * ex
215+
Ky = dot_vectors_numba(K, ey) * ey
216216
Mc = EIx[i] * Kx + EIy[i] * Ky
217-
cma = numba_cross(Mc, Qa)
218-
cmb = numba_cross(Mc, Qb)
219-
ua = cma / numba_length(cma)
220-
ub = cmb / numba_length(cmb)
221-
c1 = numba_cross(Qa, ua)
222-
c2 = numba_cross(Qb, ub)
223-
Lc1 = numba_length(c1)
224-
Lc2 = numba_length(c2)
217+
cma = cross_vectors_numba(Mc, Qa)
218+
cmb = cross_vectors_numba(Mc, Qb)
219+
ua = cma / length_vector_numba(cma)
220+
ub = cmb / length_vector_numba(cmb)
221+
c1 = cross_vectors_numba(Qa, ua)
222+
c2 = cross_vectors_numba(Qb, ub)
223+
Lc1 = length_vector_numba(c1)
224+
Lc2 = length_vector_numba(c2)
225225
Ms = Mc[0]**2 + Mc[1]**2 + Mc[2]**2
226-
Sa = ua * Ms * Lc1 / (La * numba_vdot(Mc, c1))
227-
Sb = ub * Ms * Lc2 / (Lb * numba_vdot(Mc, c2))
226+
Sa = ua * Ms * Lc1 / (La * dot_vectors_numba(Mc, c1))
227+
Sb = ub * Ms * Lc2 / (Lb * dot_vectors_numba(Mc, c2))
228228
S[inds[i], :] += Sa
229229
S[indi[i], :] -= Sa + Sb
230230
S[indf[i], :] += Sb

0 commit comments

Comments
 (0)