没有项目描述
cutde的Python项目详细描述
来自Nikkhoo和Walters 2015的Python+Cuda TDES
你好!用法非常简单:
import cutde.fullspace disp = cutde.fullspace.clu_disp(pts, tris, slips, 0.25) strain = cutde.fullspace.clu_strain(pts, tris, slips, nu)
- pts是形状为(N, 3) 的np.array。
- tris是一个np.array形状的(N, 3, 3),
- 卡瓦是形状为(N, 3) 的np.array。
- 最后一个参数nu是泊松比。
重要提示:对于所有这些数组,n应该相同。确实有 每个观测点使用一个三角形和滑移值。
slip[:,0]是走滑分量,而分量1是下倾分量 卡瓦和组件2是拉伸/开口组件。
- 输出disp是具有位移的(N, 3)数组 X、Y、Z方向的组件。
- 输出strain是表示对称的(N, 6)数组 张量。strain[:,0]是应变的xx分量,1是yy,2是 3是xy,4是xz,5是yz。
我想要压力。
使用:
stress = cutde.fullspace.strain_to_stress(strain, sm, nu)
假设各向同性线弹性从应力转换为应变。 sm是剪切模量,nu是泊松比。
所有对
相反,如果您想要创建一个表示交互的矩阵 在每个观测点和每个源三角之间,有一个 不同的界面:
import cutde.fullspace disp = cutde.fullspace.clu_disp_all_pairs(pts, tris, slips, 0.25) strain = cutde.fullspace.clu_strain_all_pairs(pts, tris, slips, nu)
- pts是形状为(N_OBS_PTS, 3) 的np.array。
- tris是一个np.array形状的(N_SRC_TRIS, 3, 3),
- 卡瓦是形状为(N_SRC_TRIS, 3) 的np.array。
- 最后一个参数nu是泊松比。
- 输出disp是一个(N_OBS_PTS, N_SRC_TRIS, 3)数组。
- 输出strain是一个(N_OBS_PTS, N_SRC_TRIS, 6)数组。
注意,要使用strain_to_stress函数,需要 将输出应变重塑为(N_OBS_PTS * N_SRC_TRIS, 6)。
安装
只需运行
pip install cutde
它还将安装`cluda 依赖关系https://github.com/tbenthompson/cluda>;`。你也可以 如果您还没有pycuda或pyopencl,则需要安装pycuda或pyopencl 其他已安装。如果你在一台支持GPU的机器上 库达,试试:
pip install pycuda
否则,您需要安装pyopencl。安装opencl有时 一阵风,有时是巨大的痛苦,但它应该可以安装在大多数 最新的硬件和典型的操作系统。These directions can be helpful.。