diff --git a/input/3d-shape-mesh-target-opt.json b/input/3d-shape-mesh-target-opt.json index 8c7fa05..ff4793d 100644 --- a/input/3d-shape-mesh-target-opt.json +++ b/input/3d-shape-mesh-target-opt.json @@ -145,5 +145,24 @@ { "path": "3d-shape-mesh-target.json" } - ] -} + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/3d-shape-mesh-target.json b/input/3d-shape-mesh-target.json index c7b2cbc..9121a6b 100644 --- a/input/3d-shape-mesh-target.json +++ b/input/3d-shape-mesh-target.json @@ -92,7 +92,22 @@ { "type": "GradientDescent" } - ] + ], + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { diff --git a/input/barycenter-opt.json b/input/barycenter-opt.json index 1192249..951ddce 100644 --- a/input/barycenter-opt.json +++ b/input/barycenter-opt.json @@ -6,15 +6,12 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "transient_integral", "state": 0, - "static_objective": - { + "static_objective": { "type": "center-target", "state": 0, "target_state": 1, @@ -29,5 +26,24 @@ { "path": "barycenter-target.json" } - ] + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/barycenter-target.json b/input/barycenter-target.json index fa35fa5..932b707 100644 --- a/input/barycenter-target.json +++ b/input/barycenter-target.json @@ -45,14 +45,31 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-5, - "max_iterations": 200 + "max_iterations": 200, + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2.0000000000000002e-07, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 + } }, "contact": { - "barrier_stiffness": 1e5 + "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -98,4 +115,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/barycenter.json b/input/barycenter.json index b4d5d25..5ed5234 100644 --- a/input/barycenter.json +++ b/input/barycenter.json @@ -45,14 +45,31 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-5, - "max_iterations": 200 + "max_iterations": 200, + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2.0000000000000002e-07, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 + } }, "contact": { - "barrier_stiffness": 1e5 + "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -98,4 +115,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/control-pressure-nodes-3d-opt.json b/input/control-pressure-nodes-3d-opt.json index 8ffd1f3..a6083f8 100644 --- a/input/control-pressure-nodes-3d-opt.json +++ b/input/control-pressure-nodes-3d-opt.json @@ -130,5 +130,23 @@ "path": "control-pressure-nodes-3d.json" } ], - "solver": {} -} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/control-pressure-nodes-3d.json b/input/control-pressure-nodes-3d.json index 6925f13..c287abd 100644 --- a/input/control-pressure-nodes-3d.json +++ b/input/control-pressure-nodes-3d.json @@ -93,7 +93,22 @@ "Newton": { "use_psd_projection": false, "use_psd_projection_in_regularized": false + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -147,7 +162,7 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ], diff --git a/input/damping-transient-opt.json b/input/damping-transient-opt.json index 19dba3b..5766346 100644 --- a/input/damping-transient-opt.json +++ b/input/damping-transient-opt.json @@ -23,15 +23,21 @@ "functionals": [ { "type": "transient_integral", - "static_objective": - { + "static_objective": { "type": "target", "state": 0, "target_state": 1, "matching": "exact", - "volume_selection": [1], - "surface_selection": [1], - "reference_cached_body_ids": [1, 3] + "volume_selection": [ + 1 + ], + "surface_selection": [ + 1 + ], + "reference_cached_body_ids": [ + 1, + 3 + ] }, "state": 0 } @@ -46,7 +52,22 @@ ], "solver": { "nonlinear": { - "debug_fd_eps": 1e-3 + "debug_fd_eps": 0.001, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } } -} +} \ No newline at end of file diff --git a/input/damping-transient-target.json b/input/damping-transient-target.json index 42c5fc8..35d3c94 100644 --- a/input/damping-transient-target.json +++ b/input/damping-transient-target.json @@ -59,15 +59,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-3 + "use_grad_norm_tol": 1e-05 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 } }, "contact": { "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -113,4 +128,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/damping-transient.json b/input/damping-transient.json index a835f09..8a84c32 100644 --- a/input/damping-transient.json +++ b/input/damping-transient.json @@ -59,15 +59,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-3 + "use_grad_norm_tol": 1e-05 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 } }, "contact": { "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -113,4 +128,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/dirichlet-nodes-3d-opt.json b/input/dirichlet-nodes-3d-opt.json index e09a2a7..54c1045 100644 --- a/input/dirichlet-nodes-3d-opt.json +++ b/input/dirichlet-nodes-3d-opt.json @@ -28,5 +28,23 @@ "path": "dirichlet-nodes-3d.json" } ], - "solver": {} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/dirichlet-nodes-3d.json b/input/dirichlet-nodes-3d.json index aeb8e9a..e42bb5b 100644 --- a/input/dirichlet-nodes-3d.json +++ b/input/dirichlet-nodes-3d.json @@ -19,6 +19,23 @@ "solver": { "linear": { "solver": "Eigen::SimplicialLDLT" + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { @@ -30,7 +47,7 @@ { "id": 1, "type": "NeoHookean", - "E": 7.3e5, + "E": 730000.0, "nu": 0.47, "rho": 1000 } @@ -40,4 +57,4 @@ "level": "error" } } -} +} \ No newline at end of file diff --git a/input/dirichlet-ref-opt.json b/input/dirichlet-ref-opt.json index 680d60f..fbecdb9 100644 --- a/input/dirichlet-ref-opt.json +++ b/input/dirichlet-ref-opt.json @@ -1,10 +1,6 @@ { - "variable_to_simulation": [ - - ], - "parameters": [ - - ], + "variable_to_simulation": [], + "parameters": [], "functionals": [ { "type": "target", @@ -20,5 +16,24 @@ { "path": "dirichlet-ref.json" } - ] + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/dirichlet-ref.json b/input/dirichlet-ref.json index 1cf810f..23df029 100644 --- a/input/dirichlet-ref.json +++ b/input/dirichlet-ref.json @@ -80,10 +80,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { "barrier_stiffness": 100000 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 + } } }, "boundary_conditions": { @@ -240,4 +260,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/dirichlet-sdf-opt.json b/input/dirichlet-sdf-opt.json index 33cb3b9..9a65fbe 100644 --- a/input/dirichlet-sdf-opt.json +++ b/input/dirichlet-sdf-opt.json @@ -104,5 +104,24 @@ { "path": "dirichlet-sdf.json" } - ] + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/dirichlet-sdf.json b/input/dirichlet-sdf.json index 2cea3db..ba16a1d 100644 --- a/input/dirichlet-sdf.json +++ b/input/dirichlet-sdf.json @@ -90,7 +90,7 @@ "contact": { "enabled": true, "use_convergent_formulation": true, - "dhat": 1e-3, + "dhat": 0.001, "friction_coefficient": 0.5 }, "solver": { @@ -101,10 +101,24 @@ ] }, "nonlinear": { - "grad_norm": 1e-6 + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2e-08, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 + } }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -239,7 +253,7 @@ -0.17, -0.18, -0.19, - -0.20, + -0.2, -0.21, -0.22 ] @@ -249,7 +263,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.44, "rho": 1000 }, @@ -265,4 +279,4 @@ "save_time_sequence": true } } -} +} \ No newline at end of file diff --git a/input/friction-contact-opt.json b/input/friction-contact-opt.json index 12ba44a..5db929e 100644 --- a/input/friction-contact-opt.json +++ b/input/friction-contact-opt.json @@ -29,5 +29,24 @@ { "path": "initial-contact-target.json" } - ] -} + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/homogenize-stress-opt.json b/input/homogenize-stress-opt.json index c68c3a7..0812aaa 100644 --- a/input/homogenize-stress-opt.json +++ b/input/homogenize-stress-opt.json @@ -6,19 +6,35 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "stress", - "dimensions": [1, 1], + "dimensions": [ + 1, + 1 + ], "state": 0 } ], "solver": { "nonlinear": { - "debug_fd_eps": 1e-7 + "debug_fd_eps": 1e-07, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/input/homogenize-stress-periodic-opt.json b/input/homogenize-stress-periodic-opt.json index 80bc854..3131b9f 100644 --- a/input/homogenize-stress-periodic-opt.json +++ b/input/homogenize-stress-periodic-opt.json @@ -6,20 +6,36 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "stress", - "dimensions": [1, 1], + "dimensions": [ + 1, + 1 + ], "state": 0, "weight": 1 } ], "solver": { "nonlinear": { - "debug_fd_eps": 1e-7 + "debug_fd_eps": 1e-07, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/input/homogenize-stress-periodic.json b/input/homogenize-stress-periodic.json index b1eb27a..c851c3b 100644 --- a/input/homogenize-stress-periodic.json +++ b/input/homogenize-stress-periodic.json @@ -4,7 +4,7 @@ "mesh": "../periodic105.msh", "n_refs": 0, "surface_selection": { - "threshold": 1e-6 + "threshold": 1e-06 } } ], @@ -17,28 +17,59 @@ "contact": { "enabled": true, "use_convergent_formulation": true, - "dhat": 5e-3, + "dhat": 0.005, "periodic": true }, "solver": { "linear": { - "solver": ["Eigen::PardisoLLT","Eigen::CholmodSupernodalLLT"] + "solver": [ + "Eigen::PardisoLLT", + "Eigen::CholmodSupernodalLLT" + ] }, "adjoint_linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-9 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } }, "contact": { "barrier_stiffness": 1 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { "periodic_boundary": { "enabled": true, - "linear_displacement_offset": [[0, 0],[0, -0.3]], - "fixed_macro_strain": [3] + "linear_displacement_offset": [ + [ + 0, + 0 + ], + [ + 0, + -0.3 + ] + ], + "fixed_macro_strain": [ + 3 + ] } }, "output": { @@ -53,7 +84,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e3, + "E": 1000.0, "nu": 0.5 } -} +} \ No newline at end of file diff --git a/input/homogenize-stress.json b/input/homogenize-stress.json index 5958a66..c9246e0 100644 --- a/input/homogenize-stress.json +++ b/input/homogenize-stress.json @@ -3,7 +3,7 @@ { "mesh": "../periodic105.msh", "surface_selection": { - "threshold": 1e-6 + "threshold": 1e-06 } } ], @@ -16,28 +16,59 @@ "contact": { "enabled": true, "use_convergent_formulation": true, - "dhat": 1e-2, + "dhat": 0.01, "periodic": false }, "solver": { "linear": { - "solver": ["Eigen::PardisoLLT","Eigen::CholmodSupernodalLLT"] + "solver": [ + "Eigen::PardisoLLT", + "Eigen::CholmodSupernodalLLT" + ] }, "adjoint_linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-9 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } }, "contact": { - "barrier_stiffness": 1e2 + "barrier_stiffness": 100.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { "periodic_boundary": { "enabled": true, - "linear_displacement_offset": [[0, 0],[0, -2e-1]], - "fixed_macro_strain": [3] + "linear_displacement_offset": [ + [ + 0, + 0 + ], + [ + 0, + -0.2 + ] + ], + "fixed_macro_strain": [ + 3 + ] } }, "output": { @@ -52,7 +83,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e3, + "E": 1000.0, "nu": 0.5 } -} +} \ No newline at end of file diff --git a/input/initial-contact-min-dist-opt.json b/input/initial-contact-min-dist-opt.json index 2a15f36..86abd33 100644 --- a/input/initial-contact-min-dist-opt.json +++ b/input/initial-contact-min-dist-opt.json @@ -48,5 +48,24 @@ { "path": "initial-contact-target.json" } - ] -} + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/initial-contact-opt.json b/input/initial-contact-opt.json index bb62368..36ff4a6 100644 --- a/input/initial-contact-opt.json +++ b/input/initial-contact-opt.json @@ -6,20 +6,19 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "transient_integral", "state": 0, - "static_objective": - { + "static_objective": { "type": "target", "state": 0, "target_state": 1, "matching": "exact", - "surface_selection": [1] + "surface_selection": [ + 1 + ] } } ], @@ -30,5 +29,24 @@ { "path": "initial-contact-target.json" } - ] + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/initial-contact-smooth-opt.json b/input/initial-contact-smooth-opt.json index c13a12a..e66fe1a 100644 --- a/input/initial-contact-smooth-opt.json +++ b/input/initial-contact-smooth-opt.json @@ -46,5 +46,24 @@ { "path": "initial-contact-target.json" } - ] -} + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/initial-contact-target.json b/input/initial-contact-target.json index c2c432c..3d203a3 100644 --- a/input/initial-contact-target.json +++ b/input/initial-contact-target.json @@ -45,10 +45,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 4e-12, + "grad_norm_tol": 4e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 4e-08 + } } }, "boundary_conditions": { @@ -79,7 +99,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3, "rho": 1000 }, @@ -92,4 +112,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/initial-contact.json b/input/initial-contact.json index 9498e66..3599a65 100644 --- a/input/initial-contact.json +++ b/input/initial-contact.json @@ -45,10 +45,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 4e-12, + "grad_norm_tol": 4e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 4e-08 + } } }, "boundary_conditions": { @@ -79,7 +99,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3, "rho": 1000 }, @@ -92,4 +112,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/laplacian-opt.json b/input/laplacian-opt.json index d397a89..e283b5f 100644 --- a/input/laplacian-opt.json +++ b/input/laplacian-opt.json @@ -6,13 +6,11 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "stress_norm", - "weight": 1e4, + "weight": 10000.0, "state": 0 }, { @@ -30,6 +28,22 @@ } ], "solver": { - + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } } } \ No newline at end of file diff --git a/input/laplacian.json b/input/laplacian.json index db8bb53..3b54c5a 100644 --- a/input/laplacian.json +++ b/input/laplacian.json @@ -7,7 +7,27 @@ ], "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "space": { diff --git a/input/linear_elasticity-surface-3d-opt.json b/input/linear_elasticity-surface-3d-opt.json index 9a840ac..0676f31 100644 --- a/input/linear_elasticity-surface-3d-opt.json +++ b/input/linear_elasticity-surface-3d-opt.json @@ -6,9 +6,7 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "position", @@ -20,5 +18,24 @@ { "path": "linear_elasticity-surface-3d.json" } - ] -} + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/linear_elasticity-surface-3d.json b/input/linear_elasticity-surface-3d.json index 00e00da..a283762 100644 --- a/input/linear_elasticity-surface-3d.json +++ b/input/linear_elasticity-surface-3d.json @@ -11,14 +11,38 @@ } ], "transformation": { - "translation": [0.5, 0.5, 0.5] + "translation": [ + 0.5, + 0.5, + 0.5 + ] }, "n_refs": 0 } ], "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "space": { diff --git a/input/linear_elasticity-surface-opt.json b/input/linear_elasticity-surface-opt.json index 07a3cef..2824285 100644 --- a/input/linear_elasticity-surface-opt.json +++ b/input/linear_elasticity-surface-opt.json @@ -6,9 +6,7 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "position", @@ -21,5 +19,24 @@ { "path": "linear_elasticity-surface.json" } - ] + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/linear_elasticity-surface.json b/input/linear_elasticity-surface.json index 6d1dab1..f01d86e 100644 --- a/input/linear_elasticity-surface.json +++ b/input/linear_elasticity-surface.json @@ -3,10 +3,13 @@ { "mesh": "../cube_dense.msh", "transformation": { - "translation": [0.5, 0.5] + "translation": [ + 0.5, + 0.5 + ] }, "surface_selection": { - "threshold": 1e-4 + "threshold": 0.0001 } } ], @@ -19,7 +22,27 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { diff --git a/input/material-transient-opt.json b/input/material-transient-opt.json index fd6b60e..7bba63e 100644 --- a/input/material-transient-opt.json +++ b/input/material-transient-opt.json @@ -25,14 +25,21 @@ "functionals": [ { "type": "transient_integral", - "static_objective": { + "static_objective": { "type": "target", "state": 0, "target_state": 1, "matching": "exact", - "volume_selection": [1], - "surface_selection": [1], - "reference_cached_body_ids": [1, 3] + "volume_selection": [ + 1 + ], + "surface_selection": [ + 1 + ], + "reference_cached_body_ids": [ + 1, + 3 + ] }, "state": 0 } @@ -47,7 +54,22 @@ ], "solver": { "nonlinear": { - "debug_fd_eps": 1e-5 + "debug_fd_eps": 1e-05, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } } -} +} \ No newline at end of file diff --git a/input/material-transient-target.json b/input/material-transient-target.json index 59a3a47..d65341a 100644 --- a/input/material-transient-target.json +++ b/input/material-transient-target.json @@ -47,19 +47,36 @@ "contact": { "enabled": true, "use_convergent_formulation": true, - "dhat": 1e-2, + "dhat": 0.01, "friction_coefficient": 0.2 }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 3e-6, - "max_iterations": 100 + "max_iterations": 100, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 3.0000000000000004e-08, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-08 + } }, "contact": { - "barrier_stiffness": 1e5 + "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -90,7 +107,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3, "rho": 1000, "phi": 10, @@ -105,4 +122,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/material-transient.json b/input/material-transient.json index 0dd0671..ffb3010 100644 --- a/input/material-transient.json +++ b/input/material-transient.json @@ -47,19 +47,36 @@ "contact": { "enabled": true, "use_convergent_formulation": true, - "dhat": 1e-2, + "dhat": 0.01, "friction_coefficient": 0.2 }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 3e-6, - "max_iterations": 100 + "max_iterations": 100, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 3.0000000000000004e-08, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-08 + } }, "contact": { - "barrier_stiffness": 1e5 + "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -90,7 +107,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e6, + "E": 1000000.0, "nu": 0.3, "rho": 1000, "phi": 10, @@ -105,4 +122,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/neohookean-stress-3d-opt.json b/input/neohookean-stress-3d-opt.json index c1665d1..5bdc4d6 100644 --- a/input/neohookean-stress-3d-opt.json +++ b/input/neohookean-stress-3d-opt.json @@ -6,9 +6,7 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "stress_norm", @@ -21,6 +19,22 @@ } ], "solver": { - + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } } } \ No newline at end of file diff --git a/input/neohookean-stress-3d.json b/input/neohookean-stress-3d.json index 1b3f428..fa251cc 100644 --- a/input/neohookean-stress-3d.json +++ b/input/neohookean-stress-3d.json @@ -13,7 +13,27 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { @@ -35,7 +55,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } -} +} \ No newline at end of file diff --git a/input/node-trajectory-opt.json b/input/node-trajectory-opt.json index 8251506..28a5853 100644 --- a/input/node-trajectory-opt.json +++ b/input/node-trajectory-opt.json @@ -1,19 +1,29 @@ { - "functionals": [ - - ], + "functionals": [], "states": [ { "path": "node-trajectory.json" } ], - "variable_to_simulation": [ - - ], - "parameters": [ - - ], + "variable_to_simulation": [], + "parameters": [], "solver": { - + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } } } \ No newline at end of file diff --git a/input/node-trajectory.json b/input/node-trajectory.json index a53792d..14ebb17 100644 --- a/input/node-trajectory.json +++ b/input/node-trajectory.json @@ -29,15 +29,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-3 + "use_grad_norm_tol": 0.001 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 } }, "contact": { "barrier_stiffness": 20 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -73,4 +88,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/shape-contact-adhesion-opt.json b/input/shape-contact-adhesion-opt.json index f55a909..6277a98 100644 --- a/input/shape-contact-adhesion-opt.json +++ b/input/shape-contact-adhesion-opt.json @@ -6,9 +6,7 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "stress_norm", @@ -24,7 +22,23 @@ } ], "solver": { - + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } }, "states": [ { diff --git a/input/shape-contact-adhesion.json b/input/shape-contact-adhesion.json index 6a09b6c..79fdba7 100644 --- a/input/shape-contact-adhesion.json +++ b/input/shape-contact-adhesion.json @@ -61,20 +61,35 @@ "adhesion_enabled": true, "dhat_p": 0.0005, "dhat_a": 0.001, - "adhesion_strength": 1e-3 + "adhesion_strength": 0.001 } }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-3 + "use_grad_norm_tol": 0.001 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 } }, "contact": { "barrier_stiffness": 20 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -101,4 +116,4 @@ "nu": 0.3, "rho": 1 } -} +} \ No newline at end of file diff --git a/input/shape-contact-force-norm-3d-opt.json b/input/shape-contact-force-norm-3d-opt.json index 71f3063..8077143 100644 --- a/input/shape-contact-force-norm-3d-opt.json +++ b/input/shape-contact-force-norm-3d-opt.json @@ -28,7 +28,7 @@ "state": 0, "static_objective": { "type": "log_contact_force_norm", - "dhat": 1e-1, + "dhat": 0.1, "state": 0, "surface_selection": [ 2, @@ -42,5 +42,23 @@ "path": "shape-contact-force-norm-3d.json" } ], - "solver": {} -} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/shape-contact-force-norm-3d.json b/input/shape-contact-force-norm-3d.json index 70e8037..e55547d 100644 --- a/input/shape-contact-force-norm-3d.json +++ b/input/shape-contact-force-norm-3d.json @@ -62,11 +62,25 @@ ] }, "contact": { - "barrier_stiffness": 1e4, + "barrier_stiffness": 10000.0, "friction_iterations": 1 }, "nonlinear": { - "grad_norm": 1e-12 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-11, + "grad_norm_tol": 9.999999999999999e-14, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 9.999999999999998e-08 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "contact": { @@ -113,13 +127,13 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 }, { "id": 2, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ], @@ -137,4 +151,4 @@ "save_time_sequence": true } } -} +} \ No newline at end of file diff --git a/input/shape-contact-force-norm-adhesion.json b/input/shape-contact-force-norm-adhesion.json index 6da9398..9c4f19a 100644 --- a/input/shape-contact-force-norm-adhesion.json +++ b/input/shape-contact-force-norm-adhesion.json @@ -60,23 +60,37 @@ ] }, "contact": { - "barrier_stiffness": 1e4, + "barrier_stiffness": 10000.0, "friction_iterations": 1 }, "nonlinear": { - "grad_norm": 1e-9 + "norm_type": "Euclidean", + "first_grad_norm_tol": 3.3333333333333335e-12, + "grad_norm_tol": 3.3333333333333335e-11, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 3.3333333333333334e-08 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "contact": { "enabled": true, "use_convergent_formulation": true, "dhat": 0.01, - "friction_coefficient": 0.4000, + "friction_coefficient": 0.4, "adhesion": { "adhesion_enabled": true, "dhat_p": 0.01, "dhat_a": 0.02, - "adhesion_strength": 1e-4, + "adhesion_strength": 0.0001, "tangential_adhesion_coefficient": 0.1 } }, @@ -115,13 +129,13 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 }, { "id": 2, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ], @@ -138,4 +152,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/shape-contact-force-norm-opt-adhesion.json b/input/shape-contact-force-norm-opt-adhesion.json index ea3deeb..d2176fe 100644 --- a/input/shape-contact-force-norm-opt-adhesion.json +++ b/input/shape-contact-force-norm-opt-adhesion.json @@ -42,7 +42,7 @@ 3, 4 ], - "dhat": 1e-1 + "dhat": 0.1 } } ], @@ -51,5 +51,23 @@ "path": "shape-contact-force-norm-adhesion.json" } ], - "solver": {} -} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/shape-contact-force-norm-opt.json b/input/shape-contact-force-norm-opt.json index 538b980..d4b7e57 100644 --- a/input/shape-contact-force-norm-opt.json +++ b/input/shape-contact-force-norm-opt.json @@ -42,7 +42,7 @@ 3, 4 ], - "dhat": 1e-1 + "dhat": 0.1 } } ], @@ -51,5 +51,23 @@ "path": "shape-contact-force-norm.json" } ], - "solver": {} -} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/shape-contact-force-norm.json b/input/shape-contact-force-norm.json index b405593..22da970 100644 --- a/input/shape-contact-force-norm.json +++ b/input/shape-contact-force-norm.json @@ -60,18 +60,32 @@ ] }, "contact": { - "barrier_stiffness": 1e4, + "barrier_stiffness": 10000.0, "friction_iterations": 1 }, "nonlinear": { - "grad_norm": 1e-9 + "norm_type": "Euclidean", + "first_grad_norm_tol": 3.3333333333333335e-12, + "grad_norm_tol": 3.3333333333333335e-11, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 3.3333333333333334e-08 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "contact": { "enabled": true, "use_convergent_formulation": true, "dhat": 0.01, - "friction_coefficient": 0.4000 + "friction_coefficient": 0.4 }, "boundary_conditions": { "rhs": [ @@ -108,13 +122,13 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 }, { "id": 2, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ], @@ -131,4 +145,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/shape-contact-opt.json b/input/shape-contact-opt.json index 0d72c33..3b96a98 100644 --- a/input/shape-contact-opt.json +++ b/input/shape-contact-opt.json @@ -6,9 +6,7 @@ "composition": [] } ], - "parameters": [ - - ], + "parameters": [], "functionals": [ { "type": "stress_norm", @@ -24,7 +22,23 @@ } ], "solver": { - + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } }, "states": [ { diff --git a/input/shape-contact.json b/input/shape-contact.json index 7de60ca..0bddb86 100644 --- a/input/shape-contact.json +++ b/input/shape-contact.json @@ -60,15 +60,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-3 + "use_grad_norm_tol": 0.001 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 } }, "contact": { "barrier_stiffness": 20 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -95,4 +110,4 @@ "nu": 0.3, "rho": 1 } -} +} \ No newline at end of file diff --git a/input/shape-neumann-nodes-opt.json b/input/shape-neumann-nodes-opt.json index 2017230..17c9ec7 100644 --- a/input/shape-neumann-nodes-opt.json +++ b/input/shape-neumann-nodes-opt.json @@ -44,5 +44,23 @@ "path": "shape-neumann-nodes.json" } ], - "solver": {} -} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/shape-neumann-nodes.json b/input/shape-neumann-nodes.json index da39e73..3cf8534 100644 --- a/input/shape-neumann-nodes.json +++ b/input/shape-neumann-nodes.json @@ -48,15 +48,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-3 + "use_grad_norm_tol": 2.5e-05 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 2.5000000000000003e-12, + "grad_norm_tol": 2.5e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 } }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "contact": { @@ -102,14 +117,14 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 }, { "id": 2, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ] -} +} \ No newline at end of file diff --git a/input/shape-pressure-neumann-nodes-opt.json b/input/shape-pressure-neumann-nodes-opt.json index a05a9d6..b5e3f04 100644 --- a/input/shape-pressure-neumann-nodes-opt.json +++ b/input/shape-pressure-neumann-nodes-opt.json @@ -26,5 +26,23 @@ "path": "shape-neumann-nodes.json" } ], - "solver": {} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/shape-pressure-neumann-nodes.json b/input/shape-pressure-neumann-nodes.json index 0292d06..74c9f52 100644 --- a/input/shape-pressure-neumann-nodes.json +++ b/input/shape-pressure-neumann-nodes.json @@ -48,15 +48,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-3 + "use_grad_norm_tol": 2.5e-05 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 2.5000000000000003e-12, + "grad_norm_tol": 2.5e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "contact": { @@ -98,13 +113,13 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 }, { "id": 2, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ], @@ -120,4 +135,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/shape-pressure-nodes-2d-opt.json b/input/shape-pressure-nodes-2d-opt.json index 0f14365..fb10511 100644 --- a/input/shape-pressure-nodes-2d-opt.json +++ b/input/shape-pressure-nodes-2d-opt.json @@ -44,5 +44,23 @@ "path": "shape-pressure-nodes-2d.json" } ], - "solver": {} -} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/shape-pressure-nodes-2d.json b/input/shape-pressure-nodes-2d.json index dfbbcae..61458f0 100644 --- a/input/shape-pressure-nodes-2d.json +++ b/input/shape-pressure-nodes-2d.json @@ -72,13 +72,24 @@ ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 }, "nonlinear": { - "grad_norm": 1e-8, "line_search": { - "use_grad_norm_tol": 1e-7 + "use_grad_norm_tol": 5e-09 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 5.0000000000000005e-12, + "grad_norm_tol": 5e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "contact": { @@ -130,13 +141,13 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 }, { "id": 2, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ], @@ -153,4 +164,4 @@ "save_time_sequence": true } } -} +} \ No newline at end of file diff --git a/input/shape-pressure-nodes-3d-opt.json b/input/shape-pressure-nodes-3d-opt.json index 582a3a1..dbde1c4 100644 --- a/input/shape-pressure-nodes-3d-opt.json +++ b/input/shape-pressure-nodes-3d-opt.json @@ -135,5 +135,23 @@ "path": "shape-pressure-nodes-3d.json" } ], - "solver": {} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/shape-pressure-nodes-3d.json b/input/shape-pressure-nodes-3d.json index 3033f92..3531be8 100644 --- a/input/shape-pressure-nodes-3d.json +++ b/input/shape-pressure-nodes-3d.json @@ -92,12 +92,24 @@ ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-7 + "use_grad_norm_tol": 2.5e-09 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 2.5000000000000003e-12, + "grad_norm_tol": 2.5e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "contact": { @@ -149,13 +161,13 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 }, { "id": 2, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ], @@ -171,4 +183,4 @@ "save_time_sequence": true } } -} +} \ No newline at end of file diff --git a/input/shape-transient-friction-opt.json b/input/shape-transient-friction-opt.json index 1b0571b..627c721 100644 --- a/input/shape-transient-friction-opt.json +++ b/input/shape-transient-friction-opt.json @@ -26,5 +26,24 @@ { "path": "shape-transient-friction.json" } - ] -} + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/shape-transient-friction-sdf-opt.json b/input/shape-transient-friction-sdf-opt.json index ef60612..747f9e6 100644 --- a/input/shape-transient-friction-sdf-opt.json +++ b/input/shape-transient-friction-sdf-opt.json @@ -54,5 +54,24 @@ { "path": "shape-transient-friction-sdf.json" } - ] + ], + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } } \ No newline at end of file diff --git a/input/shape-transient-friction-sdf.json b/input/shape-transient-friction-sdf.json index 904499e..19be84b 100644 --- a/input/shape-transient-friction-sdf.json +++ b/input/shape-transient-friction-sdf.json @@ -73,10 +73,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 2.5000000000000003e-12, + "grad_norm_tol": 2.5e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2.5e-08 + } } }, "boundary_conditions": { @@ -111,4 +131,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/shape-transient-friction.json b/input/shape-transient-friction.json index 3d813a4..cf23431 100644 --- a/input/shape-transient-friction.json +++ b/input/shape-transient-friction.json @@ -46,15 +46,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-3 + "use_grad_norm_tol": 2.5e-05 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 2.5000000000000003e-12, + "grad_norm_tol": 2.5e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 } }, "contact": { "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -85,4 +100,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/static-control-pressure-nodes-3d-opt.json b/input/static-control-pressure-nodes-3d-opt.json index 5dd770b..a6ad54d 100644 --- a/input/static-control-pressure-nodes-3d-opt.json +++ b/input/static-control-pressure-nodes-3d-opt.json @@ -125,5 +125,23 @@ "path": "static-control-pressure-nodes-3d.json" } ], - "solver": {} -} + "solver": { + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } + } +} \ No newline at end of file diff --git a/input/static-control-pressure-nodes-3d.json b/input/static-control-pressure-nodes-3d.json index 324fbe8..7a2f358 100644 --- a/input/static-control-pressure-nodes-3d.json +++ b/input/static-control-pressure-nodes-3d.json @@ -80,8 +80,20 @@ }, "nonlinear": { "line_search": { - "use_grad_norm_tol": 1e-7 + "use_grad_norm_tol": 1e-07 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -111,7 +123,7 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.3 } ], diff --git a/input/topology-compliance-opt.json b/input/topology-compliance-opt.json index f54caa0..0214d6f 100644 --- a/input/topology-compliance-opt.json +++ b/input/topology-compliance-opt.json @@ -30,11 +30,29 @@ { "type": "compliance", "state": 0, - "volume_selection": [1] + "volume_selection": [ + 1 + ] } ], "solver": { - + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + } }, "states": [ { @@ -42,4 +60,4 @@ "id": 0 } ] -} +} \ No newline at end of file diff --git a/input/topology-compliance.json b/input/topology-compliance.json index 1f71eda..f441d0d 100644 --- a/input/topology-compliance.json +++ b/input/topology-compliance.json @@ -3,7 +3,7 @@ { "mesh": "../bar198.obj", "surface_selection": { - "threshold": 1e-4 + "threshold": 0.0001 }, "volume_selection": 1 } @@ -17,7 +17,27 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { diff --git a/input/walker-opt.json b/input/walker-opt.json index ac1d3ab..c7f5ade 100644 --- a/input/walker-opt.json +++ b/input/walker-opt.json @@ -50,7 +50,6 @@ "nonlinear": { "solver": "L-BFGS", "max_iterations": 100, - "grad_norm": 1e-6, "box_constraints": { "bounds": [ -1500, @@ -58,18 +57,29 @@ ] }, "advanced": { - "apply_gradient_fd": "None" + "apply_gradient_fd": "None", + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-06, + "x_delta_tol": 0, + "line_search": { + "use_grad_norm_tol": 1e-06 } }, "advanced": { "enable_slim": false, - "smooth_line_search": false + "smooth_line_search": false, + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "functionals": [ { "type": "transient_integral", - "weight": 1e2, + "weight": 100.0, "print_energy": "target_match", "integral_type": "final", "state": 0, diff --git a/input/walker-shape-opt.json b/input/walker-shape-opt.json index e5d6018..b805cf2 100644 --- a/input/walker-shape-opt.json +++ b/input/walker-shape-opt.json @@ -60,7 +60,6 @@ "nonlinear": { "solver": "L-BFGS", "max_iterations": 100, - "grad_norm": 1e-6, "box_constraints": { "bounds": [ -1500, @@ -68,18 +67,29 @@ ] }, "advanced": { - "apply_gradient_fd": "DirectionalDerivative" + "apply_gradient_fd": "DirectionalDerivative", + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-06, + "x_delta_tol": 0, + "line_search": { + "use_grad_norm_tol": 1e-06 } }, "advanced": { "enable_slim": false, - "smooth_line_search": false + "smooth_line_search": false, + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "functionals": [ { "type": "transient_integral", - "weight": 1e2, + "weight": 100.0, "print_energy": "target_match", "integral_type": "final", "state": 0, @@ -105,4 +115,4 @@ "path": "walker-shape.json" } ] -} +} \ No newline at end of file diff --git a/input/walker-shape.json b/input/walker-shape.json index 6535060..3dc1ce9 100644 --- a/input/walker-shape.json +++ b/input/walker-shape.json @@ -64,7 +64,7 @@ "contact": { "enabled": true, "friction_coefficient": 0.8, - "dhat": 1e-4, + "dhat": 0.0001, "use_convergent_formulation": true }, "space": { @@ -81,15 +81,18 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::CholmodSupernodalLLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::CholmodSupernodalLLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e5, + "barrier_stiffness": 100000.0, "friction_iterations": 1 }, "nonlinear": { "max_iterations": 1500, - "grad_norm": 1e-8, "solver": [ { "type": "Newton" @@ -107,7 +110,22 @@ "Newton": { "use_psd_projection": false, "use_psd_projection_in_regularized": false + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -229,7 +247,7 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.35, "rho": 1000 } @@ -251,4 +269,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/input/walker.json b/input/walker.json index c3e8105..2fae952 100644 --- a/input/walker.json +++ b/input/walker.json @@ -64,7 +64,7 @@ "contact": { "enabled": true, "friction_coefficient": 0.8, - "dhat": 1e-4, + "dhat": 0.0001, "use_convergent_formulation": true }, "space": { @@ -81,15 +81,18 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::CholmodSupernodalLLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::CholmodSupernodalLLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e5, + "barrier_stiffness": 100000.0, "friction_iterations": 1 }, "nonlinear": { "max_iterations": 1500, - "grad_norm": 1e-9, "solver": [ { "type": "Newton" @@ -107,7 +110,22 @@ "Newton": { "use_psd_projection": false, "use_psd_projection_in_regularized": false + }, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1.0000000000000002e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -229,7 +247,7 @@ { "id": 1, "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.35, "rho": 1000 } @@ -251,4 +269,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/2d-shape-traction-force/run.json b/optimizations/2d-shape-traction-force/run.json index 90381a4..efd01e0 100644 --- a/optimizations/2d-shape-traction-force/run.json +++ b/optimizations/2d-shape-traction-force/run.json @@ -100,7 +100,7 @@ ] }, "print_energy": "traction", - "weight": -1e-4 + "weight": -0.0001 }, { "type": "transient_integral", @@ -119,7 +119,7 @@ }, { "type": "AMIPS", - "weight": 1e-8, + "weight": 1e-08, "state": 0, "volume_selection": [ 2 @@ -127,7 +127,7 @@ }, { "type": "AMIPS", - "weight": 1e-8, + "weight": 1e-08, "state": 0, "volume_selection": [ 3 @@ -137,7 +137,7 @@ "type": "collision_barrier", "weight": 1, "state": 0, - "dhat": 5e-5 + "dhat": 5e-05 } ], "solver": { @@ -146,7 +146,6 @@ "min_step_size": 1e-12, "max_step_size": 1.0, "max_iterations": 4, - "grad_norm": 1e-8, "line_search": { "method": "Backtracking", "use_grad_norm_tol": 0 @@ -154,7 +153,19 @@ "export_energy": "2d-shape-traction-force", "relative_gradient": false, "use_grad_norm": true, - "solver_info_log": true + "solver_info_log": true, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/2d-shape-traction-force/state.json b/optimizations/2d-shape-traction-force/state.json index 8bc60c2..d617b2e 100644 --- a/optimizations/2d-shape-traction-force/state.json +++ b/optimizations/2d-shape-traction-force/state.json @@ -71,15 +71,32 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { "barrier_stiffness": 500 }, "nonlinear": { "max_iterations": 500, - "grad_norm": 1e-9, - "debug_fd": false + "debug_fd": false, + "norm_type": "Euclidean", + "first_grad_norm_tol": 2.5e-14, + "grad_norm_tol": 2.5000000000000005e-13, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2.5e-10 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "contact": { @@ -167,4 +184,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/3d-bspline-shape-matching/run.json b/optimizations/3d-bspline-shape-matching/run.json index 0a94764..4050c4c 100644 --- a/optimizations/3d-bspline-shape-matching/run.json +++ b/optimizations/3d-bspline-shape-matching/run.json @@ -173,7 +173,7 @@ }, { "type": "AMIPS", - "weight": 1e-8, + "weight": 1e-08, "state": 0, "volume_selection": [ 1 @@ -183,10 +183,9 @@ "solver": { "nonlinear": { "solver": "L-BFGS", - "min_step_size": 1e-8, + "min_step_size": 1e-08, "max_step_size": 1.0, "max_iterations": 4, - "grad_norm": 1e-8, "line_search": { "method": "Backtracking", "use_grad_norm_tol": 0 @@ -194,7 +193,19 @@ "export_energy": "3d-bspline-shape-matching", "relative_gradient": false, "use_grad_norm": true, - "solver_info_log": true + "solver_info_log": true, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/3d-bspline-shape-matching/state.json b/optimizations/3d-bspline-shape-matching/state.json index eed2653..cd32a9b 100644 --- a/optimizations/3d-bspline-shape-matching/state.json +++ b/optimizations/3d-bspline-shape-matching/state.json @@ -59,14 +59,31 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8, - "max_iterations": 500 + "max_iterations": 500, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "materials": { @@ -89,4 +106,4 @@ } ] } -} +} \ No newline at end of file diff --git a/optimizations/3d-bspline-shape-mesh-matching/run.json b/optimizations/3d-bspline-shape-mesh-matching/run.json index 2dc8299..e2a10e7 100644 --- a/optimizations/3d-bspline-shape-mesh-matching/run.json +++ b/optimizations/3d-bspline-shape-mesh-matching/run.json @@ -72,7 +72,7 @@ }, { "type": "AMIPS", - "weight": 1e-8, + "weight": 1e-08, "state": 0, "volume_selection": [ 1 @@ -82,10 +82,9 @@ "solver": { "nonlinear": { "solver": "L-BFGS", - "min_step_size": 1e-8, + "min_step_size": 1e-08, "max_step_size": 1.0, "max_iterations": 4, - "grad_norm": 1e-8, "line_search": { "method": "Backtracking", "use_grad_norm_tol": 0 @@ -93,7 +92,19 @@ "export_energy": "3d-bspline-shape-mesh-matching", "relative_gradient": false, "use_grad_norm": true, - "solver_info_log": true + "solver_info_log": true, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/3d-bspline-shape-mesh-matching/state.json b/optimizations/3d-bspline-shape-mesh-matching/state.json index eed2653..cd32a9b 100644 --- a/optimizations/3d-bspline-shape-mesh-matching/state.json +++ b/optimizations/3d-bspline-shape-mesh-matching/state.json @@ -59,14 +59,31 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8, - "max_iterations": 500 + "max_iterations": 500, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "materials": { @@ -89,4 +106,4 @@ } ] } -} +} \ No newline at end of file diff --git a/optimizations/3d-bspline-shape-trajectory-opt/run.json b/optimizations/3d-bspline-shape-trajectory-opt/run.json index 49a762e..aea0e8d 100644 --- a/optimizations/3d-bspline-shape-trajectory-opt/run.json +++ b/optimizations/3d-bspline-shape-trajectory-opt/run.json @@ -123,12 +123,12 @@ "smoothing_parameters": { "min_iter": 2, "tol": 1e-10, - "soft_p": 1e5, + "soft_p": 100000.0, "exp_factor": 5 }, "contact": { "CCD": { - "tolerance": 1e-6, + "tolerance": 1e-06, "max_iterations": 1000000 }, "enabled": true @@ -154,16 +154,15 @@ "type": "collision_barrier", "shape_parameter": 0, "weight": 1, - "dhat": 1e-3 + "dhat": 0.001 } ], "solver": { "nonlinear": { "solver": "L-BFGS", - "min_step_size": 1e-8, + "min_step_size": 1e-08, "max_step_size": 1.0, "max_iterations": 4, - "grad_norm": 1e-4, "line_search": { "method": "Backtracking", "use_grad_norm_tol": 0 @@ -172,7 +171,19 @@ "relative_gradient": false, "use_grad_norm": true, "solver_info_log": true, - "debug_fd": false + "debug_fd": false, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 0.0001, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/3d-bspline-shape-trajectory-opt/state.json b/optimizations/3d-bspline-shape-trajectory-opt/state.json index f44b19c..d06012b 100644 --- a/optimizations/3d-bspline-shape-trajectory-opt/state.json +++ b/optimizations/3d-bspline-shape-trajectory-opt/state.json @@ -104,14 +104,31 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8, - "max_iterations": 500 + "max_iterations": 500, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "materials": { @@ -150,4 +167,4 @@ } ] } -} +} \ No newline at end of file diff --git a/optimizations/3d-bspline-shape-trajectory-opt/target.json b/optimizations/3d-bspline-shape-trajectory-opt/target.json index 60033c3..35621c9 100644 --- a/optimizations/3d-bspline-shape-trajectory-opt/target.json +++ b/optimizations/3d-bspline-shape-trajectory-opt/target.json @@ -104,14 +104,31 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8, - "max_iterations": 500 + "max_iterations": 500, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "materials": { @@ -150,4 +167,4 @@ } ] } -} +} \ No newline at end of file diff --git a/optimizations/3d-shape-layer-thickness/run.json b/optimizations/3d-shape-layer-thickness/run.json index 36381ac..8753edb 100644 --- a/optimizations/3d-shape-layer-thickness/run.json +++ b/optimizations/3d-shape-layer-thickness/run.json @@ -72,8 +72,21 @@ "nonlinear": { "solver": "L-BFGS", "max_iterations": 10, - "grad_norm": 1e-4, - "x_delta": 0 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 0.0001, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ @@ -81,4 +94,4 @@ "path": "state.json" } ] -} +} \ No newline at end of file diff --git a/optimizations/3d-shape-layer-thickness/state.json b/optimizations/3d-shape-layer-thickness/state.json index 904c858..63558d7 100644 --- a/optimizations/3d-shape-layer-thickness/state.json +++ b/optimizations/3d-shape-layer-thickness/state.json @@ -42,14 +42,32 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::CholmodSupernodalLLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::CholmodSupernodalLLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8, - "max_iterations": 500 + "max_iterations": 500, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 1000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "materials": { @@ -89,4 +107,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/AMIPS-debug/run.json b/optimizations/AMIPS-debug/run.json index 037214d..dacd3be 100644 --- a/optimizations/AMIPS-debug/run.json +++ b/optimizations/AMIPS-debug/run.json @@ -12,13 +12,22 @@ "nonlinear": { "solver": "L-BFGS", "max_iterations": 50, - "grad_norm": 1e-4, - "x_delta": 0, - "first_grad_norm_tol": 1e-8, + "first_grad_norm_tol": 1e-08, "line_search": { "use_grad_norm_tol": 0.0, "method": "Backtracking" + }, + "norm_type": "Euclidean", + "grad_norm_tol": 0.0001, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "functionals": [], diff --git a/optimizations/AMIPS-debug/state.json b/optimizations/AMIPS-debug/state.json index 7971795..ac6f705 100644 --- a/optimizations/AMIPS-debug/state.json +++ b/optimizations/AMIPS-debug/state.json @@ -31,6 +31,23 @@ "solver": { "linear": { "solver": "Eigen::LDLT" + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { diff --git a/optimizations/damping-opt/run.json b/optimizations/damping-opt/run.json index 09d338c..778b9d1 100644 --- a/optimizations/damping-opt/run.json +++ b/optimizations/damping-opt/run.json @@ -5,15 +5,28 @@ }, "solver": { "nonlinear": { - "first_grad_norm_tol": 1e-6, + "first_grad_norm_tol": 1e-06, "solver": "L-BFGS", - "min_step_size": 1e-5, + "min_step_size": 1e-05, "max_step_size": 1, "debug_fd": false, - "debug_fd_eps": 1e-7, + "debug_fd_eps": 1e-07, "max_iterations": 5, "export_energy": "damping-opt", - "grad_norm": 1e-9 + "norm_type": "Euclidean", + "grad_norm_tol": 1e-09, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/damping-opt/state.json b/optimizations/damping-opt/state.json index a21d28a..f0701dd 100644 --- a/optimizations/damping-opt/state.json +++ b/optimizations/damping-opt/state.json @@ -1,10 +1,14 @@ { - "geometry": [{ + "geometry": [ + { "mesh": "wave.msh", "is_obstacle": true, "transformation": { "rotation": 30, - "scale": [6, 3] + "scale": [ + 6, + 3 + ] }, "volume_selection": 3, "surface_selection": 3 @@ -12,7 +16,10 @@ { "mesh": "micro.msh", "transformation": { - "translation": [1, 1], + "translation": [ + 1, + 1 + ], "rotation": 30, "scale": 0.005 }, @@ -41,10 +48,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 4e-12, + "grad_norm_tol": 4e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 4e-08 + } } }, "boundary_conditions": { @@ -52,17 +79,19 @@ 0, 9.8 ], - "dirichlet_boundary": [{ - "id": 3, - "value": [ - 0, - 0 - ] - }] + "dirichlet_boundary": [ + { + "id": 3, + "value": [ + 0, + 0 + ] + } + ] }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.5, "rho": 100, "phi": 0.01, @@ -80,4 +109,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/damping-opt/target.json b/optimizations/damping-opt/target.json index d899c7d..1a2f114 100755 --- a/optimizations/damping-opt/target.json +++ b/optimizations/damping-opt/target.json @@ -1,10 +1,14 @@ { - "geometry": [{ + "geometry": [ + { "mesh": "wave.msh", "is_obstacle": true, "transformation": { "rotation": 30, - "scale": [6, 3] + "scale": [ + 6, + 3 + ] }, "volume_selection": 3, "surface_selection": 3 @@ -12,7 +16,10 @@ { "mesh": "micro.msh", "transformation": { - "translation": [1, 1], + "translation": [ + 1, + 1 + ], "rotation": 30, "scale": 0.005 }, @@ -41,10 +48,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 4e-12, + "grad_norm_tol": 4e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 4e-08 + } } }, "boundary_conditions": { @@ -52,17 +79,19 @@ 0, 9.8 ], - "dirichlet_boundary": [{ - "id": 3, - "value": [ - 0, - 0 - ] - }] + "dirichlet_boundary": [ + { + "id": 3, + "value": [ + 0, + 0 + ] + } + ] }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.5, "rho": 100, "phi": 1, @@ -73,4 +102,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/friction-opt/run.json b/optimizations/friction-opt/run.json index 2197731..37b5f35 100644 --- a/optimizations/friction-opt/run.json +++ b/optimizations/friction-opt/run.json @@ -5,15 +5,28 @@ }, "solver": { "nonlinear": { - "first_grad_norm_tol": 1e-6, + "first_grad_norm_tol": 1e-06, "solver": "L-BFGS", - "min_step_size": 1e-5, + "min_step_size": 1e-05, "max_step_size": 1, "debug_fd": false, - "debug_fd_eps": 1e-7, + "debug_fd_eps": 1e-07, "max_iterations": 5, "export_energy": "friction-opt", - "grad_norm": 1e-9 + "norm_type": "Euclidean", + "grad_norm_tol": 1e-09, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/friction-opt/state.json b/optimizations/friction-opt/state.json index cd9574c..55a92bf 100644 --- a/optimizations/friction-opt/state.json +++ b/optimizations/friction-opt/state.json @@ -1,10 +1,14 @@ { - "geometry": [{ + "geometry": [ + { "mesh": "wave.msh", "is_obstacle": true, "transformation": { "rotation": 30, - "scale": [6, 3] + "scale": [ + 6, + 3 + ] }, "volume_selection": 3, "surface_selection": 3 @@ -12,7 +16,10 @@ { "mesh": "micro.msh", "transformation": { - "translation": [1, 1], + "translation": [ + 1, + 1 + ], "rotation": 30, "scale": 0.005 }, @@ -41,10 +48,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 4e-12, + "grad_norm_tol": 4e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 4e-08 + } } }, "boundary_conditions": { @@ -52,17 +79,19 @@ 0, 9.8 ], - "dirichlet_boundary": [{ - "id": 3, - "value": [ - 0, - 0 - ] - }] + "dirichlet_boundary": [ + { + "id": 3, + "value": [ + 0, + 0 + ] + } + ] }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.5, "rho": 100 }, @@ -78,4 +107,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/friction-opt/target.json b/optimizations/friction-opt/target.json index 89c81dc..2e34f90 100755 --- a/optimizations/friction-opt/target.json +++ b/optimizations/friction-opt/target.json @@ -1,10 +1,14 @@ { - "geometry": [{ + "geometry": [ + { "mesh": "wave.msh", "is_obstacle": true, "transformation": { "rotation": 30, - "scale": [6, 3] + "scale": [ + 6, + 3 + ] }, "volume_selection": 3, "surface_selection": 3 @@ -12,7 +16,10 @@ { "mesh": "micro.msh", "transformation": { - "translation": [1, 1], + "translation": [ + 1, + 1 + ], "rotation": 30, "scale": 0.005 }, @@ -41,10 +48,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 4e-12, + "grad_norm_tol": 4e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 4e-08 + } } }, "boundary_conditions": { @@ -52,17 +79,19 @@ 0, 9.8 ], - "dirichlet_boundary": [{ - "id": 3, - "value": [ - 0, - 0 - ] - }] + "dirichlet_boundary": [ + { + "id": 3, + "value": [ + 0, + 0 + ] + } + ] }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.5, "rho": 100 }, @@ -71,4 +100,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/initial-condition-trajectory-opt/barycenter-target.json b/optimizations/initial-condition-trajectory-opt/barycenter-target.json index b172743..46cc6aa 100644 --- a/optimizations/initial-condition-trajectory-opt/barycenter-target.json +++ b/optimizations/initial-condition-trajectory-opt/barycenter-target.json @@ -51,9 +51,24 @@ ] }, "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 + } }, "contact": { - "barrier_stiffness": 1e5 + "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -99,4 +114,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/initial-condition-trajectory-opt/barycenter.json b/optimizations/initial-condition-trajectory-opt/barycenter.json index c9a037a..4c4e9cf 100644 --- a/optimizations/initial-condition-trajectory-opt/barycenter.json +++ b/optimizations/initial-condition-trajectory-opt/barycenter.json @@ -51,9 +51,24 @@ ] }, "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 + } }, "contact": { - "barrier_stiffness": 1e5 + "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -99,4 +114,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/initial-condition-trajectory-opt/run.json b/optimizations/initial-condition-trajectory-opt/run.json index f407010..cae4c03 100644 --- a/optimizations/initial-condition-trajectory-opt/run.json +++ b/optimizations/initial-condition-trajectory-opt/run.json @@ -3,18 +3,25 @@ { "type": "initial", "state": 0, - "composition": [{ - "type": "append-values", - "values": [0, 0] - },{ - "type": "per-body-to-per-node", - "state": 0 - },{ - "type": "append-const", - "value": 0, - "size": 146, - "start": 0 - }] + "composition": [ + { + "type": "append-values", + "values": [ + 0, + 0 + ] + }, + { + "type": "per-body-to-per-node", + "state": 0 + }, + { + "type": "append-const", + "value": 0, + "size": 146, + "start": 0 + } + ] } ], "output": { @@ -25,20 +32,35 @@ "solver": { "nonlinear": { "line_search": { - "method": "Backtracking" + "method": "Backtracking", + "use_grad_norm_tol": 1e-06 }, "solver": "L-BFGS", "L-BFGS": { "history_size": 2 }, "max_iterations": 5, - "grad_norm": 1e-5 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-05, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "parameters": [ { "number": 2, - "initial": [4, 0] + "initial": [ + 4, + 0 + ] } ], "functionals": [ @@ -47,12 +69,13 @@ "state": 0, "weight": 10, "integral_type": "uniform", - "static_objective": - { + "static_objective": { "type": "center-target", "state": 0, "target_state": 1, - "volume_selection": [1] + "volume_selection": [ + 1 + ] } } ], diff --git a/optimizations/initial-opt/run.json b/optimizations/initial-opt/run.json index 153792e..eec67c8 100644 --- a/optimizations/initial-opt/run.json +++ b/optimizations/initial-opt/run.json @@ -43,6 +43,23 @@ "solver": { "contact": { "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 + } } }, "boundary_conditions": { @@ -100,4 +117,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/initial-opt/target.json b/optimizations/initial-opt/target.json index 33708f1..f413896 100644 --- a/optimizations/initial-opt/target.json +++ b/optimizations/initial-opt/target.json @@ -43,6 +43,23 @@ "solver": { "contact": { "barrier_stiffness": 100000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 2e-12, + "grad_norm_tol": 2e-10, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 2e-08 + } } }, "boundary_conditions": { @@ -100,4 +117,4 @@ "save_time_sequence": false } } -} +} \ No newline at end of file diff --git a/optimizations/macro_strain-opt/run.json b/optimizations/macro_strain-opt/run.json index 130375c..a88dc38 100644 --- a/optimizations/macro_strain-opt/run.json +++ b/optimizations/macro_strain-opt/run.json @@ -6,13 +6,27 @@ "solver": { "nonlinear": { "solver": "L-BFGS", - "min_step_size": 1e-8, + "min_step_size": 1e-08, "max_step_size": 1, "debug_fd": false, - "debug_fd_eps": 1e-7, + "debug_fd_eps": 1e-07, "max_iterations": 100, "export_energy": "macro_strain-opt", - "grad_norm": 1e-7 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-07, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/macro_strain-opt/state.json b/optimizations/macro_strain-opt/state.json index cadf700..eeafbda 100644 --- a/optimizations/macro_strain-opt/state.json +++ b/optimizations/macro_strain-opt/state.json @@ -3,7 +3,7 @@ { "mesh": "CMM.msh", "surface_selection": { - "threshold": 1e-5 + "threshold": 1e-05 }, "transformation": { "scale": 1 @@ -27,16 +27,45 @@ "adjoint_solver": "Eigen::PardisoLDLT" }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { - "periodic_boundary": [true, true], - "linear_displacement_offset": [[-0.04, 0],[0,-0.1]] + "periodic_boundary": [ + true, + true + ], + "linear_displacement_offset": [ + [ + -0.04, + 0 + ], + [ + 0, + -0.1 + ] + ] }, "materials": { "type": "NeoHookean", - "E": 1e4, + "E": 10000.0, "nu": 0.5, "rho": 1 } diff --git a/optimizations/material-opt/run.json b/optimizations/material-opt/run.json index 2f04e1d..d46d4aa 100644 --- a/optimizations/material-opt/run.json +++ b/optimizations/material-opt/run.json @@ -8,7 +8,20 @@ "first_grad_norm_tol": 1e-10, "solver": "GradientDescent", "max_iterations": 5, - "grad_norm": 1e-9 + "norm_type": "Euclidean", + "grad_norm_tol": 1e-09, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ @@ -36,7 +49,10 @@ ], "parameters": [ { - "initial": [10.0088, 7.92941], + "initial": [ + 10.0088, + 7.92941 + ], "number": 2 } ], diff --git a/optimizations/material-opt/state.json b/optimizations/material-opt/state.json index bef92e1..0b9438c 100644 --- a/optimizations/material-opt/state.json +++ b/optimizations/material-opt/state.json @@ -55,10 +55,24 @@ }, "nonlinear": { "max_iterations": 200, - "grad_norm": 1e-3 + "norm_type": "Euclidean", + "first_grad_norm_tol": 4e-12, + "grad_norm_tol": 4e-05, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 4e-08 + } }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -78,7 +92,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e4, + "E": 10000.0, "nu": 0.8, "rho": 100 }, @@ -88,7 +102,9 @@ "high_order_mesh": false, "vismesh_rel_area": 1 }, - "log": {"level": 3}, + "log": { + "level": 3 + }, "advanced": { "save_time_sequence": true } diff --git a/optimizations/material-opt/target.json b/optimizations/material-opt/target.json index 21b93d0..22e94d8 100755 --- a/optimizations/material-opt/target.json +++ b/optimizations/material-opt/target.json @@ -55,10 +55,24 @@ }, "nonlinear": { "max_iterations": 200, - "grad_norm": 1e-3 + "norm_type": "Euclidean", + "first_grad_norm_tol": 4e-12, + "grad_norm_tol": 4e-05, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 4e-08 + } }, "contact": { - "barrier_stiffness": 1e4 + "barrier_stiffness": 10000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -78,7 +92,7 @@ }, "materials": { "type": "NeoHookean", - "E": 1e5, + "E": 100000.0, "nu": 0.5, "rho": 100 }, @@ -88,7 +102,9 @@ "high_order_mesh": false, "vismesh_rel_area": 1 }, - "log": {"level": 3}, + "log": { + "level": 3 + }, "advanced": { "save_time_sequence": false } diff --git a/optimizations/multiparameter-sdf-trajectory-surface-opt/run.json b/optimizations/multiparameter-sdf-trajectory-surface-opt/run.json index b2328ac..671d75f 100644 --- a/optimizations/multiparameter-sdf-trajectory-surface-opt/run.json +++ b/optimizations/multiparameter-sdf-trajectory-surface-opt/run.json @@ -49,12 +49,12 @@ "smoothing_parameters": { "min_iter": 2, "tol": 1e-10, - "soft_p": 1e5, + "soft_p": 100000.0, "exp_factor": 5 }, "contact": { "CCD": { - "tolerance": 1e-6, + "tolerance": 1e-06, "max_iterations": 1000000 }, "enabled": true @@ -122,16 +122,15 @@ "type": "collision_barrier", "shape_parameter": 0, "weight": 1, - "dhat": 1e-2 + "dhat": 0.01 } ], "solver": { "nonlinear": { "solver": "L-BFGS", - "min_step_size": 1e-8, + "min_step_size": 1e-08, "max_step_size": 1.0, "max_iterations": 4, - "grad_norm": 1e-4, "line_search": { "method": "Backtracking", "use_grad_norm_tol": 0 @@ -141,10 +140,22 @@ "use_grad_norm": true, "solver_info_log": true, "debug_fd": false, - "debug_fd_eps": 1e-3 + "debug_fd_eps": 0.001, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 0.0001, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + } }, "contact": { "enabled": false + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/multiparameter-sdf-trajectory-surface-opt/state.json b/optimizations/multiparameter-sdf-trajectory-surface-opt/state.json index cb8a7d3..7ab5663 100644 --- a/optimizations/multiparameter-sdf-trajectory-surface-opt/state.json +++ b/optimizations/multiparameter-sdf-trajectory-surface-opt/state.json @@ -92,13 +92,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -171,4 +188,4 @@ "phi": 0, "type": "NeoHookean" } -} +} \ No newline at end of file diff --git a/optimizations/shape-stress-bbw-opt/run.json b/optimizations/shape-stress-bbw-opt/run.json index 6bda7f1..a3d5f59 100644 --- a/optimizations/shape-stress-bbw-opt/run.json +++ b/optimizations/shape-stress-bbw-opt/run.json @@ -61,9 +61,23 @@ "nonlinear": { "solver": "L-BFGS", "max_iterations": 4, - "grad_norm": 1e-4, "export_energy": "shape-stress-bbw-opt", - "solver_info_log": true + "solver_info_log": true, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 0.0001, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "functionals": [ diff --git a/optimizations/shape-stress-bbw-opt/state.json b/optimizations/shape-stress-bbw-opt/state.json index ae7e5d0..9f64ebf 100644 --- a/optimizations/shape-stress-bbw-opt/state.json +++ b/optimizations/shape-stress-bbw-opt/state.json @@ -1,20 +1,23 @@ { - "geometry": [{ - "mesh": "../bar-2523.msh", - "volume_selection": 1, - "n_refs": 0, - "surface_selection": [{ - "id": 1, - "axis": "-x", - "position": 2.5 - }, - { - "id": 2, - "axis": "+x", - "position": 2.5 - } - ] - }], + "geometry": [ + { + "mesh": "../bar-2523.msh", + "volume_selection": 1, + "n_refs": 0, + "surface_selection": [ + { + "id": 1, + "axis": "-x", + "position": 2.5 + }, + { + "id": 2, + "axis": "+x", + "position": 2.5 + } + ] + } + ], "space": { "discr_order": 1, "advanced": { @@ -23,7 +26,27 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { @@ -32,18 +55,20 @@ 9.81, 0 ], - "dirichlet_boundary": [{ - "id": 1, - "value": [ - 0, - 0, - 0 - ] - }] + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0, + 0 + ] + } + ] }, "materials": { "type": "NeoHookean", - "E": 1e8, + "E": 100000000.0, "nu": 0.47, "rho": 1000 }, diff --git a/optimizations/shape-stress-opt/run.json b/optimizations/shape-stress-opt/run.json index 3b7882c..107baa2 100644 --- a/optimizations/shape-stress-opt/run.json +++ b/optimizations/shape-stress-opt/run.json @@ -28,15 +28,28 @@ "nonlinear": { "solver": "L-BFGS", "max_iterations": 9, - "grad_norm": 1e-4, - "x_delta": 0 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 0.0001, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "functionals": [ { "type": "power", "power": 0.125, - "weight": 1e-3, + "weight": 0.001, "objective": { "type": "stress_norm", "power": 8, @@ -58,12 +71,12 @@ "weight": 10, "soft_bound": [ 0, - 2.36226e-1 + 0.236226 ] }, { "type": "boundary_smoothing", - "weight": 1e-3, + "weight": 0.001, "state": 0, "scale_invariant": true, "power": 4, @@ -71,7 +84,7 @@ }, { "type": "AMIPS", - "weight": 1e-6, + "weight": 1e-06, "state": 0, "volume_selection": [ 1 diff --git a/optimizations/shape-stress-opt/state.json b/optimizations/shape-stress-opt/state.json index 20cca0e..9a46e87 100644 --- a/optimizations/shape-stress-opt/state.json +++ b/optimizations/shape-stress-opt/state.json @@ -1,83 +1,92 @@ { - "geometry": [{ - "mesh": "bridge-uniform.msh", - "volume_selection": 1, - "n_refs": 0, - "surface_selection": [{ - "id": 10, - "box": [ - [ - -1.00001, - -0.02 - ], - [ - -0.9999, - 0.027 + "geometry": [ + { + "mesh": "bridge-uniform.msh", + "volume_selection": 1, + "n_refs": 0, + "surface_selection": [ + { + "id": 10, + "box": [ + [ + -1.00001, + -0.02 + ], + [ + -0.9999, + 0.027 + ] ] - ] - }, - { - "id": 10, - "box": [ - [ - 0.9999, - -0.02 - ], - [ - 1.00001, - 0.027 + }, + { + "id": 10, + "box": [ + [ + 0.9999, + -0.02 + ], + [ + 1.00001, + 0.027 + ] ] - ] - }, - { - "id": 11, - "box": [ - [ - -0.6766, - 0.0 - ], - [ - -0.6566, - 0.1 + }, + { + "id": 11, + "box": [ + [ + -0.6766, + 0.0 + ], + [ + -0.6566, + 0.1 + ] ] - ] - }, - { - "id": 11, - "box": [ - [ - -0.01, - 0.0 - ], - [ - 0.01, - 0.1 + }, + { + "id": 11, + "box": [ + [ + -0.01, + 0.0 + ], + [ + 0.01, + 0.1 + ] ] - ] - }, - { - "id": 11, - "box": [ - [ - 0.6566, - 0.0 - ], - [ - 0.6766, - 0.1 + }, + { + "id": 11, + "box": [ + [ + 0.6566, + 0.0 + ], + [ + 0.6766, + 0.1 + ] ] - ] - }, - { - "id": 1, - "box": [ - [0, 0], - [1, 1] - ], - "relative": true - } - ] - }], + }, + { + "id": 1, + "box": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "relative": true + } + ] + } + ], "space": { "discr_order": 2, "advanced": { @@ -86,24 +95,48 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { - "dirichlet_boundary": [{ - "id": 10, - "value": [ - 0, - 0 - ] - }], - "neumann_boundary": [{ - "id": 11, - "value": [ - 0, - "-0.1/0.0206065848" - ] - }] + "dirichlet_boundary": [ + { + "id": 10, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 11, + "value": [ + 0, + "-0.1/0.0206065848" + ] + } + ] }, "materials": { "type": "LinearElasticity", diff --git a/optimizations/shape-trajectory-surface-opt-bspline/run.json b/optimizations/shape-trajectory-surface-opt-bspline/run.json index 691f284..cd32d1e 100644 --- a/optimizations/shape-trajectory-surface-opt-bspline/run.json +++ b/optimizations/shape-trajectory-surface-opt-bspline/run.json @@ -25,24 +25,33 @@ "export_energy": "shape-trajectory-surface-opt-bspline", "solver": "L-BFGS", "better_initial_guess": true, - "min_step_size": 1e-8, + "min_step_size": 1e-08, "max_step_size": 1, "max_iterations": 4, - "grad_norm": 1e-4, "debug_fd": true, - "debug_fd_eps": 1e-7, - "x_delta": 0, + "debug_fd_eps": 1e-07, "export_energy_components": false, "solver_info_log": true, "relative_gradient": false, - "first_grad_norm_tol": 1e-8, + "first_grad_norm_tol": 1e-08, "line_search": { "use_grad_norm_tol": 0.0, "method": "Backtracking" + }, + "norm_type": "Euclidean", + "grad_norm_tol": 0.0001, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 } }, "contact": { "enabled": false + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/shape-trajectory-surface-opt-bspline/state.json b/optimizations/shape-trajectory-surface-opt-bspline/state.json index f85284e..32d091d 100644 --- a/optimizations/shape-trajectory-surface-opt-bspline/state.json +++ b/optimizations/shape-trajectory-surface-opt-bspline/state.json @@ -92,13 +92,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -134,4 +151,4 @@ "phi": 0, "type": "NeoHookean" } -} +} \ No newline at end of file diff --git a/optimizations/shape-trajectory-surface-opt-bspline/target.json b/optimizations/shape-trajectory-surface-opt-bspline/target.json index a4c4364..f065879 100644 --- a/optimizations/shape-trajectory-surface-opt-bspline/target.json +++ b/optimizations/shape-trajectory-surface-opt-bspline/target.json @@ -92,13 +92,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -138,4 +155,4 @@ "phi": 0, "type": "NeoHookean" } -} +} \ No newline at end of file diff --git a/optimizations/shape-trajectory-surface-opt-new/run.json b/optimizations/shape-trajectory-surface-opt-new/run.json index f7937c3..b5b176f 100644 --- a/optimizations/shape-trajectory-surface-opt-new/run.json +++ b/optimizations/shape-trajectory-surface-opt-new/run.json @@ -23,10 +23,9 @@ "solver": { "nonlinear": { "solver": "L-BFGS", - "min_step_size": 1e-8, + "min_step_size": 1e-08, "max_step_size": 1.0, "max_iterations": 4, - "grad_norm": 1e-4, "line_search": { "method": "Backtracking", "use_grad_norm_tol": 0 @@ -34,10 +33,22 @@ "export_energy": "shape-trajectory-surface-opt-new", "relative_gradient": false, "use_grad_norm": true, - "solver_info_log": true + "solver_info_log": true, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 0.0001, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + } }, "contact": { "enabled": false + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "states": [ diff --git a/optimizations/shape-trajectory-surface-opt-new/state.json b/optimizations/shape-trajectory-surface-opt-new/state.json index 10add79..9929b42 100644 --- a/optimizations/shape-trajectory-surface-opt-new/state.json +++ b/optimizations/shape-trajectory-surface-opt-new/state.json @@ -92,13 +92,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -134,4 +151,4 @@ "phi": 0, "type": "NeoHookean" } -} +} \ No newline at end of file diff --git a/optimizations/shape-trajectory-surface-opt-new/target.json b/optimizations/shape-trajectory-surface-opt-new/target.json index e28d191..506ef2d 100644 --- a/optimizations/shape-trajectory-surface-opt-new/target.json +++ b/optimizations/shape-trajectory-surface-opt-new/target.json @@ -92,13 +92,30 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT","Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] }, "nonlinear": { - "grad_norm": 1e-8 + "norm_type": "Euclidean", + "first_grad_norm_tol": 1.0000000000000001e-11, + "grad_norm_tol": 1e-09, + "x_delta_tol": 0.0, + "advanced": { + "f_delta_tol": 0.0, + "derivative_along_delta_x_tol": 0.0 + }, + "line_search": { + "use_grad_norm_tol": 1e-07 + } }, "contact": { "barrier_stiffness": 100000000.0 + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "boundary_conditions": { @@ -138,4 +155,4 @@ "phi": 0, "type": "NeoHookean" } -} +} \ No newline at end of file diff --git a/optimizations/topology-opt/run.json b/optimizations/topology-opt/run.json index 0bdb398..bc95aca 100644 --- a/optimizations/topology-opt/run.json +++ b/optimizations/topology-opt/run.json @@ -45,18 +45,30 @@ "solver": { "nonlinear": { "solver": "MMA", - "grad_norm": 0.0255, "box_constraints": { "bounds": [ - 1e-2, + 0.01, 1 ], "max_change": 1 }, "line_search": { - "method": "None" + "method": "None", + "use_grad_norm_tol": 1e-06 }, - "max_iterations": 21 + "max_iterations": 21, + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 0.0255, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + } + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 } }, "functionals": [ diff --git a/optimizations/topology-opt/state.json b/optimizations/topology-opt/state.json index 3f1934c..ab97793 100644 --- a/optimizations/topology-opt/state.json +++ b/optimizations/topology-opt/state.json @@ -5,7 +5,7 @@ "volume_selection": 1, "n_refs": 0, "surface_selection": { - "threshold": 1e-4 + "threshold": 0.0001 } } ], @@ -17,7 +17,27 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { diff --git a/optimizations/topology-opt/state1.json b/optimizations/topology-opt/state1.json index a8945fc..47d2e78 100644 --- a/optimizations/topology-opt/state1.json +++ b/optimizations/topology-opt/state1.json @@ -5,7 +5,7 @@ "volume_selection": 1, "n_refs": 0, "surface_selection": { - "threshold": 1e-4 + "threshold": 0.0001 } } ], @@ -17,7 +17,27 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": { diff --git a/optimizations/topology-opt/state2.json b/optimizations/topology-opt/state2.json index 27e7022..bc17c26 100644 --- a/optimizations/topology-opt/state2.json +++ b/optimizations/topology-opt/state2.json @@ -5,7 +5,7 @@ "volume_selection": 1, "n_refs": 0, "surface_selection": { - "threshold": 1e-4 + "threshold": 0.0001 } } ], @@ -17,7 +17,27 @@ }, "solver": { "linear": { - "solver": ["Eigen::PardisoLDLT", "Eigen::SimplicialLDLT"] + "solver": [ + "Eigen::PardisoLDLT", + "Eigen::SimplicialLDLT" + ] + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean", + "first_grad_norm_tol": 1e-10, + "grad_norm_tol": 1e-08, + "x_delta_tol": 0, + "advanced": { + "f_delta_tol": 0, + "derivative_along_delta_x_tol": 0 + }, + "line_search": { + "use_grad_norm_tol": 1e-06 + } } }, "boundary_conditions": {