Disabled external gits

This commit is contained in:
sora committed 2022-04-07 18:46:57 +02:00
1 parent 88cb3426ad
commit 15e7120d6d
5316 files changed
+4563444 -6

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 700 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 KiB

+85
View File
@@ -0,0 +1,85 @@
import numpy as np
import torch
import sys as _sys
_sys.path.append("../src/")
from elasticenergy import *
from elasticsolid import *
from adjoint_sensitivity import *
from vis_utils import *
from objectives import *
from harmonic_interpolator import *
from shape_optimizer import *
from utils import *
import json, pytest
torch.set_default_dtype(torch.float64)
eps = 1E-6
with open('test_data4_beam.json', 'r') as infile:
homework_datas = json.load(infile)
@pytest.mark.timeout(2)
@pytest.mark.parametrize("data", homework_datas[0])
def test_adjoint(data):
young, poisson, v, t, rho, pin_idx, force_mass, v_rest, v_def, dJ_dx_U, adjoint_gt = data
ee = NeoHookeanElasticEnergy(young, poisson)
es = ElasticSolid(torch.tensor(v), torch.tensor(np.array(t), dtype=torch.int64), ee, rho=rho, pin_idx=torch.tensor(pin_idx, dtype=torch.int64), f_mass=torch.tensor(force_mass))
es.update_rest_shape(torch.tensor(v_rest))
es.update_def_shape(torch.tensor(v_def))
assert torch.linalg.norm(compute_adjoint(es, torch.tensor(dJ_dx_U)) - torch.tensor(adjoint_gt)) < eps
@pytest.mark.timeout(2)
@pytest.mark.parametrize("data", homework_datas[1])
def test_obj(data):
v, vt, bv, obj_gt = data
assert torch.linalg.norm(objective_target_BV(torch.tensor(v), torch.tensor(vt), torch.tensor(bv)) - torch.tensor(obj_gt)) < eps
@pytest.mark.timeout(2)
@pytest.mark.parametrize("data", homework_datas[2])
def test_obj_grad(data):
v, vt, bv, obj_grad_gt = data
assert torch.linalg.norm(grad_objective_target_BV(torch.tensor(v), torch.tensor(vt), torch.tensor(bv)) - torch.tensor(obj_grad_gt)) < eps
@pytest.mark.timeout(2)
@pytest.mark.parametrize("data", homework_datas[3])
def test_pt_load(data):
young, poisson, v, t, rho, pin_idx, force_mass, v_rest, v_def, f_point_idx, f_point, f_point_gt, f_ext_gt = data
ee = NeoHookeanElasticEnergy(young, poisson)
es = ElasticSolid(torch.tensor(v), torch.tensor(np.array(t), dtype=torch.int64), ee, rho=rho, pin_idx=torch.tensor(pin_idx, dtype=torch.int64), f_mass=torch.tensor(force_mass))
es.update_rest_shape(torch.tensor(v_rest))
es.update_def_shape(torch.tensor(v_def))
es.add_point_load(torch.tensor(f_point_idx), torch.tensor(f_point))
assert torch.linalg.norm(es.f_point - torch.tensor(f_point_gt)) < eps
assert torch.linalg.norm(es.f_ext - torch.tensor(f_ext_gt)) < eps
@pytest.mark.parametrize("data", homework_datas[4])
def test_set_params(data):
young, poisson, v, t, vt_surf, rho, pin_idx, force_mass, v_rest, v_def, new_params, v_rest_gt, v_def_gt = data
ee = NeoHookeanElasticEnergy(young, poisson)
es = ElasticSolid(torch.tensor(v_rest), torch.tensor(np.array(t), dtype=torch.int64), ee, rho=rho, pin_idx=torch.tensor(pin_idx, dtype=torch.int64), f_mass=torch.tensor(force_mass))
es.update_def_shape(torch.tensor(v_def))
optimizer = ShapeOptimizer(es, torch.tensor(vt_surf), weight_reg=0.)
optimizer.set_params(torch.tensor(new_params))
assert torch.linalg.norm(optimizer.solid.v_rest - torch.tensor(v_rest_gt)) < eps
assert torch.linalg.norm(optimizer.solid.v_def - torch.tensor(v_def_gt)) < eps
@pytest.mark.parametrize("data", homework_datas[5])
def test_line_search(data):
young, poisson, v, t, vt_surf, rho, pin_idx, force_mass, v_rest, v_def, obj_gt, l_iter_gt, success_gt = data
ee = NeoHookeanElasticEnergy(young, poisson)
es = ElasticSolid(torch.tensor(v_rest), torch.tensor(np.array(t), dtype=torch.int64), ee, rho=rho, pin_idx=torch.tensor(pin_idx, dtype=torch.int64), f_mass=torch.tensor(force_mass))
# es.update_rest_shape(torch.tensor(v_rest))
es.update_def_shape(torch.tensor(v_def))
optimizer = ShapeOptimizer(es, torch.tensor(vt_surf), weight_reg=0.)
obj, l_iter, success = optimizer.line_search_step(1e-2, 10)
assert torch.linalg.norm(obj - torch.tensor(obj_gt)) < eps
assert l_iter == l_iter_gt
assert success == success_gt
@@ -0,0 +1 @@
[[[300000000.0, 0.2, [[1.92892740885417, 0.795891927083333, 7.06959962671885], [1.38140950520833, 1.12016276041667, 6.56891766057302], [1.77776204427083, 1.23249348958333, 6.5171683929949], [3.36708333333333, 1.2026953125, 6.34609376734385], [3.6378271484375, 0.736062825520833, 6.5233158539324], [2.94625162760417, 0.811892903645833, 6.42714804794282], [1.21115234375, 3.2785107421875, 4.03569032496105], [1.21115234375, 3.05222330729167, 4.03569032496105], [1.41037272135417, 3.22219563802083, 3.96712851669282], [1.17717610677083, 3.2785107421875, 3.7849456960548], [1.17717610677083, 3.05222330729167, 3.7849456960548], [0.826608072916667, 3.297607421875, 3.81374004826833], [0.906559244791667, 3.06875651041667, 4.0594486664324], [-0.165138346354167, 3.06035970052083, 4.22297080184907], [0.207609049479167, 2.72546223958333, 4.4538354665626], [0.426946614583333, 3.14258951822917, 4.07493613388032], [0.136866861979167, 3.15456380208333, 3.56399293726573], [-0.284313151041667, 2.76587565104167, 3.67290386662772], [0.477122395833333, 2.6718603515625, 4.01503704533865], [0.0884342447916667, 2.43097819010417, 3.90376873479177], [0.1993896484375, 2.6778466796875, 3.48202435002615], [0.114910481770833, 2.01370768229167, 3.82798341578135], [-0.3699169921875, 2.3461474609375, 3.66176983342458], [0.826608072916667, 2.83990559895833, 3.81374004826833], [0.746658528645833, 3.06875651041667, 3.56803143010427], [1.07312174479167, 0.186591796875, 3.35497946884125], [0.9015087890625, 0.186591796875, 3.12470684514333], [1.20571940104167, 0.2429052734375, 3.13923911239593], [1.07312174479167, 0.412877604166667, 3.35497946884125], [0.806204427083333, 0.396344401041667, 3.63202109481782], [0.616028645833333, 0.167493489583333, 3.41086997177093], [0.3102978515625, 0.322511393229167, 3.97484458114593], [-0.206339518229167, 0.720045572916667, 5.0712231618751], [-0.866873372395833, 0.563816731770833, 4.36135377710948], [-0.273390299479167, 0.4047412109375, 4.2340454275001], [0.155592447916667, 0.739638671875, 4.44255210067718], [-0.394640299479167, 1.118955078125, 3.66679506128917], [0.114910481770833, 1.45139322916667, 3.82798341578135], [-0.0198177083333333, 1.03412272135417, 3.91484336044282], [-1.1627880859375, 0.668907877604167, 3.70662782496105], [-0.448800455729167, 0.699225260416667, 3.70633628036468], [-1.65739908854167, 0.4868603515625, 4.67379762476573], [0.616028645833333, 0.625196940104167, 3.41086997177093], [0.9015087890625, 0.412877604166667, 3.12470684514333], [0.4258544921875, 0.396344401041667, 3.18971905217458], [-1.25579336387079, 2.94434041341147, 0.247196960449218], [-1.54755361777704, 2.95571980794272, 0.0], [-1.09422964316767, 3.46414021809897, 0.0], [-1.25579336387079, 3.9889766438802, 0.247196960449218], [-1.60864858848017, 3.4709395345052, 0.342559991040513], [-1.54755361777704, 3.97978230794272, 0.0], [-2.42104549153645, 3.65468636067708, 2.9570504222104], [-1.66876912434895, 3.16619026692708, 2.68253211166352], [-1.72982670124777, 3.68813736979167, 1.90246897460907], [-3.33207438151042, 3.12324055989583, 3.52005433863292], [-2.04028645833333, 3.24179850260417, 4.17553794052093], [-2.82052490234375, 2.88153157552083, 4.66295208440115], [-2.6843221842448, 3.65153190104167, 1.9230649218747], [-3.01930135091147, 3.05401643880208, 2.43617029525727], [-1.9243285201208, 4.16030232747395, 0.0], [-3.1018050733139, 3.70525227864583, 0.0], [-2.17311557100355, 3.8179404296875, 0.524649200439453], [-1.9243285201208, 2.78452596028645, 0.0], [-2.17311557100355, 3.10023990885417, 0.524649200439453], [-3.1018050733139, 3.19518880208333, 0.0], [-2.24000845176142, 3.47388875325522, 0.0], [-3.21087890625, 2.32591145833333, 2.55441530054698], [-4.38078694661458, 2.22052734375, 3.06782899683605], [-2.6704286295573, 2.86222135416667, 1.78254087402313], [-2.26702498372397, 2.56552034505208, 2.1616521067807], [-2.89291433115097, 3.38942643229167, 0.981263467152913], [-1.65064127604167, 2.49373697916667, 2.88164450790375], [-1.67526810749777, 2.98055729166667, 1.68948270751923], [-2.42513210458847, 3.02414518229167, 1.00103408177694], [-1.95734987802597, 3.44676822916667, 1.02080471165975], [-2.42513210458847, 3.81204947916667, 1.00103408177694], [2.92133138020833, 0.893297526041667, 8.61891277776052], [3.2291259765625, 1.302109375, 8.75000083114593], [2.63646647135417, 1.34214680989583, 8.80626547958343], [4.520048828125, 0.773118489583333, 6.23344240015635], [4.7681591796875, 0.602462565104167, 6.3074926931251], [4.31585123697917, 0.64810546875, 6.36416464950532], [2.18455891927083, 1.58300618489583, 6.51337526148448], [1.97090169270833, 1.90125, 6.60278240666677], [2.68102376302083, 1.90736165364583, 6.6796508962501], [4.43249674479167, 0.947452799479167, 6.42411419377615], [4.80994954427083, 0.709705403645833, 6.3289701508074], [-0.16156494140625, -0.49367919921875, 0.247196960449218], [-0.4533251953125, -0.48448486328125, 0.0], [0.0, 0.0, 0.0], [-0.16156494140625, 0.48864501953125, 0.247196960449218], [-0.4533251953125, 0.4772Line truncated
@@ -0,0 +1 @@
[[[300000000.0, 0.2, [[0.0, 1.0, 0.0], [1.0, 1.0, 0.0], [2.0, 1.0, 0.0], [3.0, 1.0, 0.0], [4.0, 1.0, 0.0], [5.0, 1.0, 0.0], [6.0, 1.0, 0.0], [7.0, 1.0, 0.0], [8.0, 1.0, 0.0], [9.0, 1.0, 0.0], [10.0, 1.0, 0.0], [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [2.0, 0.0, 0.0], [3.0, 0.0, 0.0], [4.0, 0.0, 0.0], [5.0, 0.0, 0.0], [6.0, 0.0, 0.0], [7.0, 0.0, 0.0], [8.0, 0.0, 0.0], [9.0, 0.0, 0.0], [10.0, 0.0, 0.0], [0.0, 1.0, 2.0], [1.0, 1.0, 2.0], [2.0, 1.0, 2.0], [3.0, 1.0, 2.0], [4.0, 1.0, 2.0], [5.0, 1.0, 2.0], [6.0, 1.0, 2.0], [7.0, 1.0, 2.0], [8.0, 1.0, 2.0], [9.0, 1.0, 2.0], [10.0, 1.0, 2.0], [0.0, 2.0, 2.0], [1.0, 2.0, 2.0], [2.0, 2.0, 2.0], [3.0, 2.0, 2.0], [4.0, 2.0, 2.0], [5.0, 2.0, 2.0], [6.0, 2.0, 2.0], [7.0, 2.0, 2.0], [8.0, 2.0, 2.0], [9.0, 2.0, 2.0], [10.0, 2.0, 2.0], [1.0, 0.0, 1.0], [2.0, 0.0, 1.0], [3.0, 0.0, 1.0], [4.0, 0.0, 1.0], [5.0, 0.0, 1.0], [6.0, 0.0, 1.0], [7.0, 0.0, 1.0], [8.0, 0.0, 1.0], [9.0, 0.0, 1.0], [10.0, 0.0, 1.0], [0.0, 0.0, 2.0], [1.0, 0.0, 2.0], [2.0, 0.0, 2.0], [3.0, 0.0, 2.0], [4.0, 0.0, 2.0], [5.0, 0.0, 2.0], [6.0, 0.0, 2.0], [7.0, 0.0, 2.0], [8.0, 0.0, 2.0], [9.0, 0.0, 2.0], [10.0, 0.0, 2.0], [10.0, 1.0, 1.0], [10.0, 2.0, 0.0], [9.0, 2.0, 0.0], [8.0, 2.0, 0.0], [7.0, 2.0, 0.0], [6.0, 2.0, 0.0], [5.0, 2.0, 0.0], [4.0, 2.0, 0.0], [3.0, 2.0, 0.0], [2.0, 2.0, 0.0], [1.0, 2.0, 0.0], [0.0, 2.0, 0.0], [10.0, 2.0, 1.0], [9.0, 2.0, 1.0], [8.0, 2.0, 1.0], [7.0, 2.0, 1.0], [6.0, 2.0, 1.0], [5.0, 2.0, 1.0], [4.0, 2.0, 1.0], [3.0, 2.0, 1.0], [2.0, 2.0, 1.0], [1.0, 2.0, 1.0], [0.0, 2.0, 1.0], [0.0, 1.0, 1.0], [0.0, 0.0, 1.0]], [[35, 85, 24, 23], [0, 86, 87, 88], [11, 12, 0, 44], [84, 37, 36, 25], [86, 34, 22, 23], [47, 84, 3, 46], [60, 27, 48, 59], [45, 13, 1, 2], [8, 30, 7, 51], [84, 36, 24, 25], [18, 6, 17, 50], [60, 27, 49, 48], [48, 27, 26, 59], [84, 4, 3, 72], [2, 84, 3, 73], [27, 60, 49, 28], [31, 30, 42, 78], [22, 44, 89, 88], [27, 38, 39, 81], [9, 53, 52, 20], [47, 84, 46, 25], [47, 84, 4, 3], [6, 49, 17, 50], [49, 27, 28, 5], [84, 3, 73, 72], [87, 86, 22, 88], [76, 0, 75, 86], [12, 45, 13, 1], [0, 11, 44, 89], [86, 34, 33, 22], [0, 1, 86, 88], [8, 52, 19, 20], [28, 27, 81, 5], [28, 81, 6, 5], [47, 48, 15, 4], [24, 46, 57, 45], [14, 47, 15, 3], [15, 47, 4, 3], [1, 0, 44, 88], [0, 1, 75, 86], [7, 29, 6, 50], [34, 85, 35, 23], [44, 0, 89, 88], [75, 1, 85, 86], [79, 29, 40, 80], [84, 4, 72, 83], [29, 61, 28, 50], [49, 28, 6, 5], [22, 23, 44, 88], [76, 0, 86, 87], [75, 1, 74, 85], [47, 84, 25, 26], [1, 85, 86, 23], [2, 73, 74, 85], [2, 84, 73, 85], [2, 23, 85, 1], [1, 2, 74, 85], [22, 86, 23, 88], [29, 79, 40, 41], [27, 4, 26, 82], [29, 28, 40, 80], [46, 57, 58, 25], [14, 47, 3, 46], [87, 86, 33, 22], [86, 85, 34, 23], [12, 1, 0, 44], [54, 22, 44, 89], [85, 84, 35, 24], [12, 45, 1, 44], [45, 24, 23, 56], [4, 72, 83, 71], [35, 84, 36, 24], [2, 84, 85, 24], [24, 2, 23, 85], [84, 83, 37, 26], [9, 10, 65, 53], [58, 47, 25, 26], [47, 46, 58, 25], [45, 24, 56, 57], [22, 55, 54, 44], [84, 47, 4, 26], [84, 37, 25, 26], [22, 23, 55, 44], [45, 23, 1, 44], [2, 24, 23, 45], [2, 23, 1, 45], [23, 45, 56, 44], [23, 56, 55, 44], [86, 1, 23, 88], [23, 1, 44, 88], [46, 24, 2, 45], [2, 14, 3, 46], [9, 10, 53, 21], [13, 14, 2, 46], [45, 13, 2, 46], [48, 27, 4, 26], [47, 48, 4, 26], [46, 24, 57, 25], [84, 4, 83, 26], [46, 84, 2, 25], [8, 79, 30, 78], [46, 24, 25, 2], [2, 84, 24, 25], [84, 46, 2, 3], [47, 48, 26, 59], [58, 47, 26, 59], [30, 8, 52, 51], [49, 60, 61, 28], [32, 31, 77, 65], [30, 79, 29, 41], [39, 28, 81, 80], [62, 61, 29, 50], [29, 62, 50, 51], [40, 28, 39, 80], [32, 31, 65, 53], [8, 79, 67, 68], [81, 70, 69, 6], [4, 83, 82, 71], [31, 42, 77, 78], [28, 27, 39, 81], [4, 83, 26, 82], [32, 31, 43, 77], [8, 79, 78, 67], [7, 6, 18, 50], [27, 26, 38, 82], [27, 38, 81, 82], [27, 49, 48, 5], [64, 63, 31, 52], [81, 70, 6, 5], [28, 81, 80, 6], [80, 69, 7, 6], [83, 37, 26, 82], [26, 37, 38, 82], [31, 42, 43, 77], [8, 30, 31, 78], [30, 79, 41, 78], [30, 41, 42, 78], [66, 77, 9, 10], [31, 8, 9, 52], [61, 49, 28, 50], [70, 81, 82, 5], [48, 15, 4, 16], [80, 81, 69, 6], [49, 48, 5, 16], [78, 67, 66, 9], [78, 8, 67, 9], [49, 5, 17, 16], [77, 9, 10, 65], [77, 78, 66, 9], [31, 8, 78, 9], [77, 31, 78, 65], [78, 31, 9, 65], [77, 78, 9, 65], [8, 9, 52, 20], [81, 27, 82, 5], [70, 82, 71, 5], [68, 80, 69, 7], [63, 30, 52, 51], [27, 4, 82, 5], [82, 4, 71, 5], [79, 29, 80, 7], [27, 48, 4, 5], [63, 62, 30, 51], [79, 80, 68, 7], [8, 79, 68, 7], [6, 49, 5, 17], [79, 8, 30, 7], [79, 30, 29, 7], [30, 62, 29, 51], [30, 29, 7, 51], [29, 80, 7, 6], [29, 28, 80, 6], [18, 7, 50, 51], [32, 64, 31, 53], [48, 4, 5, 16], [9, 53, 20, 21], [28, 49, 6, 50], [29, 28, 6, 50], [64, 31, 53, 52], [8, 52, 51, 19], [30, 8, 31, 52], [63, 30, 31, 52], [31, 9, 65, 52], [65, 9, 53, 52], [31, 65, 53, 52], [7, 29, 50, 51], [7, 8, 51, 19], [18, 7, 51, 19]], 131, [0, 11, 22, 33, 54, 76, 87, 88, 89], [0.0, 0.0, -1285.1100000000001], [[0.0, 1.0, 0.0], [1.036868033892407, 0.999825802896623, 0.034349523802574194], [2.0581123734974267, 0.9985427265446315, 0.08950Line truncated