@@ -11,8 +11,8 @@ open(vis)
1111# Include new files
1212include ( " ../utils.jl" )
1313
14- mech = get_mechanism (:box , timestep= 0.05 , g= - 9.81 , friction_coefficient= 0.2 , radius= 0.00 , side= 0.50 , mode= :box );
15- initialize! (mech, :box , x= [0 ,- 1 ,1. ], v= [0 ,2 ,1. ], ω= [2 ,5 ,10. ])
14+ mech = get_mechanism (:block , timestep= 0.05 , g= - 9.81 , friction_coefficient= 0.2 , radius= 0.00 , side= 0.50 , mode= :box );
15+ initialize! (mech, :block , x= [0 ,- 1 ,1. ], v= [0 ,2 ,1. ], ω= [2 ,5 ,10. ])
1616storage = simulate! (mech, 5.0 , record= true ,
1717 opts= SolverOptions (btol= 1e-6 , rtol= 1e-6 , verbose= false ))
1818visualize (mech, storage, vis= vis, show_contact= false )
@@ -25,7 +25,7 @@ init_kwargs = Dict(:xlims => [[0,0,0.2], [1,1,0.4]],
2525 :vlims => [- 2 ones (3 ), [2 ,2 ,- 1. ]],
2626 :ωlims => [- 6 ones (3 ), 6 ones (3 )])
2727mech_kwargs = Dict (:friction_coefficient => 0.1 , :radius => 0.0 , :side => 0.5 )
28- generate_dataset (:box , H= 0.40 , N= 35 ,
28+ generate_dataset (:block , H= 0.40 , N= 35 ,
2929 opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ),
3030 init_kwargs= init_kwargs,
3131 mech_kwargs= mech_kwargs,
@@ -36,20 +36,20 @@ generate_dataset(:box, H=0.40, N=35,
3636# ###############################################################################
3737# Load Dataset
3838# ###############################################################################
39- params0, trajs0, pairs0 = open_dataset (:box ; N = 35 , mech_kwargs... )
39+ params0, trajs0, pairs0 = open_dataset (:block ; N = 35 , mech_kwargs... )
4040
4141data0 = params0[:data ]
4242
4343# ###############################################################################
4444# Optimization Objective: Evaluation & Gradient
4545# ###############################################################################
46- # @benchmark clean_loss(:box , pairs0, data0, opts=SolverOptions(btol=3e-4, rtol=3e-4))
47- # @profiler clean_loss(:box , pairs0, data0, opts=SolverOptions(btol=3e-4, rtol=3e-4))
48- clean_loss (:box , pairs0, data0, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
46+ # @benchmark clean_loss(:block , pairs0, data0, opts=SolverOptions(btol=3e-4, rtol=3e-4))
47+ # @profiler clean_loss(:block , pairs0, data0, opts=SolverOptions(btol=3e-4, rtol=3e-4))
48+ clean_loss (:block , pairs0, data0, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
4949
50- [clean_loss (:box , pairs0, data0 + [i;zeros (55 )], opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
50+ [clean_loss (:block , pairs0, data0 + [i;zeros (55 )], opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
5151 for i in Vector (- 0.10 : 0.01 : 0.1 )]
52- [clean_loss (:box , pairs0, data0 + [0 ;i;zeros (54 )], opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
52+ [clean_loss (:block , pairs0, data0 + [0 ;i;zeros (54 )], opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
5353 for i in Vector (- 0.10 : 0.01 : 0.1 )]
5454
5555plot (hcat ([p[1 ][1 : 3 ] for p in pairs0]. .. )' )
@@ -109,11 +109,11 @@ upper = [0.80,
109109 - 0.05 , - 0.05 , + 1.00 ]
110110
111111function f0 (d; rot= 0 )
112- return clean_loss (:box , pairs0, d2data (d), n_sample= 35 , rot= rot, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))[1 ]
112+ return clean_loss (:block , pairs0, d2data (d), n_sample= 35 , rot= rot, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))[1 ]
113113end
114114
115115function fgH0 (d; rot= 0 )
116- f, g, H = clean_loss (:box , pairs0, d2data (d), n_sample= 35 , rot= rot, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
116+ f, g, H = clean_loss (:block , pairs0, d2data (d), n_sample= 35 , rot= rot, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
117117 return f, ∇d2data' * g, ∇d2data' * H * ∇d2data
118118end
119119dsol = quasi_newton_solve (f0, fgH0, d0, iter= 50 , gtol= 1e-8 , ftol= 1e-6 ,
@@ -178,11 +178,11 @@ upper = [
178178 0.80 , - 0.05 , - 0.05 , + 1.00 ]
179179
180180function f0 (d; rot= 0 )
181- return clean_loss (:box , pairs0, d2data (d), n_sample= 35 , rot= rot, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))[1 ]
181+ return clean_loss (:block , pairs0, d2data (d), n_sample= 35 , rot= rot, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))[1 ]
182182end
183183
184184function fgH0 (d; rot= 0 )
185- f, g, H = clean_loss (:box , pairs0, d2data (d), n_sample= 35 , rot= rot, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
185+ f, g, H = clean_loss (:block , pairs0, d2data (d), n_sample= 35 , rot= rot, opts= SolverOptions (btol= 3e-4 , rtol= 3e-4 ))
186186 return f, ∇d2data' * g, ∇d2data' * H * ∇d2data
187187end
188188
0 commit comments