Spaces:
Sleeping
Sleeping
File size: 755 Bytes
165ee00 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
from TrussSolvers import *
import torch
import numpy as np
def Truss10D(individuals):
assert torch.is_tensor(individuals) and individuals.size(1) == 10, "Input must be an n-by-10 PyTorch tensor."
n = individuals.size(0)
fx = torch.zeros(n,1)
# 10 bar stress constraints, 4 displacement constraints
gx = torch.zeros(n,14)
for ii in range(n):
displace, stress, _, _, weights = Truss10bar(individuals[ii,:])
fx[ii,0] = weights
for ss in range(10):
gx[ii,ss] = abs(stress[ss])
gx[ii,10] = displace[1][1]
gx[ii,11] = displace[2][1]
gx[ii,12] = displace[4][1]
gx[ii,13] = displace[5][1]
return gx, fx
|