From eaa3b1fe994cd6b360550b83a7bce25634ab515c Mon Sep 17 00:00:00 2001 From: Ian Su Date: Fri, 13 Mar 2026 14:05:30 -0400 Subject: [PATCH 1/2] initial commit --- input/barycenter-target.json | 3 ++- input/barycenter.json | 3 ++- input/damping-transient-target.json | 3 ++- input/damping-transient.json | 3 ++- input/dirichlet-ref.json | 3 ++- input/dirichlet-sdf.json | 1 + input/homogenize-stress-periodic.json | 3 ++- input/homogenize-stress.json | 3 ++- input/initial-contact-target.json | 3 ++- input/initial-contact.json | 3 ++- input/material-transient-target.json | 3 ++- input/material-transient.json | 3 ++- input/node-trajectory.json | 3 ++- input/shape-contact-adhesion.json | 3 ++- input/shape-contact-force-norm-adhesion.json | 1 + input/shape-contact-force-norm.json | 3 ++- input/shape-contact.json | 3 ++- input/shape-neumann-nodes.json | 3 ++- input/shape-pressure-neumann-nodes.json | 1 + input/shape-pressure-nodes-2d.json | 1 + input/shape-pressure-nodes-3d.json | 1 + input/shape-transient-friction-sdf.json | 3 ++- input/shape-transient-friction.json | 1 + 23 files changed, 40 insertions(+), 17 deletions(-) diff --git a/input/barycenter-target.json b/input/barycenter-target.json index 5526e23..fa35fa5 100644 --- a/input/barycenter-target.json +++ b/input/barycenter-target.json @@ -40,6 +40,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.2 }, "solver": { @@ -97,4 +98,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/barycenter.json b/input/barycenter.json index 6d5a942..b4d5d25 100644 --- a/input/barycenter.json +++ b/input/barycenter.json @@ -40,6 +40,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.2 }, "solver": { @@ -97,4 +98,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/damping-transient-target.json b/input/damping-transient-target.json index 88984bf..42c5fc8 100644 --- a/input/damping-transient-target.json +++ b/input/damping-transient-target.json @@ -54,6 +54,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.5 }, "solver": { @@ -112,4 +113,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/damping-transient.json b/input/damping-transient.json index 519da7a..a835f09 100644 --- a/input/damping-transient.json +++ b/input/damping-transient.json @@ -54,6 +54,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.5 }, "solver": { @@ -112,4 +113,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/dirichlet-ref.json b/input/dirichlet-ref.json index 6d990d5..1cf810f 100644 --- a/input/dirichlet-ref.json +++ b/input/dirichlet-ref.json @@ -75,6 +75,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0 }, "solver": { @@ -239,4 +240,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/dirichlet-sdf.json b/input/dirichlet-sdf.json index 38ef2ea..2cea3db 100644 --- a/input/dirichlet-sdf.json +++ b/input/dirichlet-sdf.json @@ -89,6 +89,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 1e-3, "friction_coefficient": 0.5 }, diff --git a/input/homogenize-stress-periodic.json b/input/homogenize-stress-periodic.json index e7143f3..b1eb27a 100644 --- a/input/homogenize-stress-periodic.json +++ b/input/homogenize-stress-periodic.json @@ -16,6 +16,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 5e-3, "periodic": true }, @@ -55,4 +56,4 @@ "E": 1e3, "nu": 0.5 } -} \ No newline at end of file +} diff --git a/input/homogenize-stress.json b/input/homogenize-stress.json index 9955323..5958a66 100644 --- a/input/homogenize-stress.json +++ b/input/homogenize-stress.json @@ -15,6 +15,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 1e-2, "periodic": false }, @@ -54,4 +55,4 @@ "E": 1e3, "nu": 0.5 } -} \ No newline at end of file +} diff --git a/input/initial-contact-target.json b/input/initial-contact-target.json index 6458a3f..c2c432c 100644 --- a/input/initial-contact-target.json +++ b/input/initial-contact-target.json @@ -40,6 +40,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.2 }, "solver": { @@ -91,4 +92,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/initial-contact.json b/input/initial-contact.json index 85995f8..9498e66 100644 --- a/input/initial-contact.json +++ b/input/initial-contact.json @@ -40,6 +40,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.2 }, "solver": { @@ -91,4 +92,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/material-transient-target.json b/input/material-transient-target.json index 43cfb5d..59a3a47 100644 --- a/input/material-transient-target.json +++ b/input/material-transient-target.json @@ -46,6 +46,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 1e-2, "friction_coefficient": 0.2 }, @@ -104,4 +105,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/material-transient.json b/input/material-transient.json index c029475..0dd0671 100644 --- a/input/material-transient.json +++ b/input/material-transient.json @@ -46,6 +46,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 1e-2, "friction_coefficient": 0.2 }, @@ -104,4 +105,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/node-trajectory.json b/input/node-trajectory.json index 1579a7f..a53792d 100644 --- a/input/node-trajectory.json +++ b/input/node-trajectory.json @@ -24,6 +24,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001 }, "solver": { @@ -72,4 +73,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/shape-contact-adhesion.json b/input/shape-contact-adhesion.json index b4182c7..6a09b6c 100644 --- a/input/shape-contact-adhesion.json +++ b/input/shape-contact-adhesion.json @@ -55,6 +55,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.0005, "adhesion": { "adhesion_enabled": true, @@ -100,4 +101,4 @@ "nu": 0.3, "rho": 1 } -} \ 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 50762c6..6da9398 100644 --- a/input/shape-contact-force-norm-adhesion.json +++ b/input/shape-contact-force-norm-adhesion.json @@ -69,6 +69,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.01, "friction_coefficient": 0.4000, "adhesion": { diff --git a/input/shape-contact-force-norm.json b/input/shape-contact-force-norm.json index 859ed9c..b405593 100644 --- a/input/shape-contact-force-norm.json +++ b/input/shape-contact-force-norm.json @@ -69,6 +69,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.01, "friction_coefficient": 0.4000 }, @@ -130,4 +131,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/input/shape-contact.json b/input/shape-contact.json index 1f12bde..7de60ca 100644 --- a/input/shape-contact.json +++ b/input/shape-contact.json @@ -55,6 +55,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001 }, "solver": { @@ -94,4 +95,4 @@ "nu": 0.3, "rho": 1 } -} \ No newline at end of file +} diff --git a/input/shape-neumann-nodes.json b/input/shape-neumann-nodes.json index c2c1a1d..da39e73 100644 --- a/input/shape-neumann-nodes.json +++ b/input/shape-neumann-nodes.json @@ -61,6 +61,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001 }, "boundary_conditions": { @@ -111,4 +112,4 @@ "nu": 0.3 } ] -} \ No newline at end of file +} diff --git a/input/shape-pressure-neumann-nodes.json b/input/shape-pressure-neumann-nodes.json index 3d30c8c..0292d06 100644 --- a/input/shape-pressure-neumann-nodes.json +++ b/input/shape-pressure-neumann-nodes.json @@ -61,6 +61,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001 }, "boundary_conditions": { diff --git a/input/shape-pressure-nodes-2d.json b/input/shape-pressure-nodes-2d.json index 48924b9..dfbbcae 100644 --- a/input/shape-pressure-nodes-2d.json +++ b/input/shape-pressure-nodes-2d.json @@ -83,6 +83,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001 }, "boundary_conditions": { diff --git a/input/shape-pressure-nodes-3d.json b/input/shape-pressure-nodes-3d.json index 3ccab48..3033f92 100644 --- a/input/shape-pressure-nodes-3d.json +++ b/input/shape-pressure-nodes-3d.json @@ -102,6 +102,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001 }, "boundary_conditions": { diff --git a/input/shape-transient-friction-sdf.json b/input/shape-transient-friction-sdf.json index cdd97d1..904499e 100644 --- a/input/shape-transient-friction-sdf.json +++ b/input/shape-transient-friction-sdf.json @@ -67,6 +67,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001, "friction_coefficient": 0.2 }, @@ -110,4 +111,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 ead978a..3d813a4 100644 --- a/input/shape-transient-friction.json +++ b/input/shape-transient-friction.json @@ -40,6 +40,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001, "friction_coefficient": 0.2 }, From 994224b768e8b935fd5df31a5925fd93a9a02f1c Mon Sep 17 00:00:00 2001 From: Ian Su Date: Fri, 13 Mar 2026 14:24:26 -0400 Subject: [PATCH 2/2] patch more --- optimizations/2d-shape-traction-force/state.json | 3 ++- optimizations/3d-bspline-shape-matching/state.json | 3 ++- optimizations/3d-bspline-shape-mesh-matching/state.json | 3 ++- optimizations/3d-bspline-shape-trajectory-opt/state.json | 3 ++- optimizations/3d-bspline-shape-trajectory-opt/target.json | 3 ++- optimizations/3d-shape-layer-thickness/state.json | 1 + optimizations/damping-opt/state.json | 3 ++- optimizations/damping-opt/target.json | 3 ++- optimizations/friction-opt/state.json | 3 ++- optimizations/friction-opt/target.json | 3 ++- .../initial-condition-trajectory-opt/barycenter-target.json | 3 ++- optimizations/initial-condition-trajectory-opt/barycenter.json | 3 ++- optimizations/initial-opt/run.json | 3 ++- optimizations/initial-opt/target.json | 3 ++- .../multiparameter-sdf-trajectory-surface-opt/state.json | 3 ++- optimizations/shape-trajectory-surface-opt-bspline/state.json | 3 ++- optimizations/shape-trajectory-surface-opt-bspline/target.json | 3 ++- optimizations/shape-trajectory-surface-opt-new/state.json | 3 ++- optimizations/shape-trajectory-surface-opt-new/target.json | 3 ++- 19 files changed, 37 insertions(+), 18 deletions(-) diff --git a/optimizations/2d-shape-traction-force/state.json b/optimizations/2d-shape-traction-force/state.json index 2c6c521..8bc60c2 100644 --- a/optimizations/2d-shape-traction-force/state.json +++ b/optimizations/2d-shape-traction-force/state.json @@ -84,6 +84,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "dhat": 0.001 }, "boundary_conditions": { @@ -166,4 +167,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/optimizations/3d-bspline-shape-matching/state.json b/optimizations/3d-bspline-shape-matching/state.json index 7e1744d..eed2653 100644 --- a/optimizations/3d-bspline-shape-matching/state.json +++ b/optimizations/3d-bspline-shape-matching/state.json @@ -54,6 +54,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -88,4 +89,4 @@ } ] } -} \ No newline at end of file +} diff --git a/optimizations/3d-bspline-shape-mesh-matching/state.json b/optimizations/3d-bspline-shape-mesh-matching/state.json index 7e1744d..eed2653 100644 --- a/optimizations/3d-bspline-shape-mesh-matching/state.json +++ b/optimizations/3d-bspline-shape-mesh-matching/state.json @@ -54,6 +54,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -88,4 +89,4 @@ } ] } -} \ No newline at end of file +} diff --git a/optimizations/3d-bspline-shape-trajectory-opt/state.json b/optimizations/3d-bspline-shape-trajectory-opt/state.json index 7aa262b..f44b19c 100644 --- a/optimizations/3d-bspline-shape-trajectory-opt/state.json +++ b/optimizations/3d-bspline-shape-trajectory-opt/state.json @@ -99,6 +99,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -149,4 +150,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 5a86746..60033c3 100644 --- a/optimizations/3d-bspline-shape-trajectory-opt/target.json +++ b/optimizations/3d-bspline-shape-trajectory-opt/target.json @@ -99,6 +99,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -149,4 +150,4 @@ } ] } -} \ 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 3c529f7..904c858 100644 --- a/optimizations/3d-shape-layer-thickness/state.json +++ b/optimizations/3d-shape-layer-thickness/state.json @@ -37,6 +37,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { diff --git a/optimizations/damping-opt/state.json b/optimizations/damping-opt/state.json index e7ea0d3..a21d28a 100644 --- a/optimizations/damping-opt/state.json +++ b/optimizations/damping-opt/state.json @@ -36,6 +36,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 1 }, "solver": { @@ -79,4 +80,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 314869b..d899c7d 100755 --- a/optimizations/damping-opt/target.json +++ b/optimizations/damping-opt/target.json @@ -36,6 +36,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 1 }, "solver": { @@ -72,4 +73,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/optimizations/friction-opt/state.json b/optimizations/friction-opt/state.json index 3b7bf45..cd9574c 100644 --- a/optimizations/friction-opt/state.json +++ b/optimizations/friction-opt/state.json @@ -36,6 +36,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 1.5 }, "solver": { @@ -77,4 +78,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 1a3c786..89c81dc 100755 --- a/optimizations/friction-opt/target.json +++ b/optimizations/friction-opt/target.json @@ -36,6 +36,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 1 }, "solver": { @@ -70,4 +71,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 f29255e..b172743 100644 --- a/optimizations/initial-condition-trajectory-opt/barycenter-target.json +++ b/optimizations/initial-condition-trajectory-opt/barycenter-target.json @@ -40,6 +40,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.4 }, "solver": { @@ -98,4 +99,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 d889957..c9a037a 100644 --- a/optimizations/initial-condition-trajectory-opt/barycenter.json +++ b/optimizations/initial-condition-trajectory-opt/barycenter.json @@ -40,6 +40,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.4 }, "solver": { @@ -98,4 +99,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/optimizations/initial-opt/run.json b/optimizations/initial-opt/run.json index aa5d791..153792e 100644 --- a/optimizations/initial-opt/run.json +++ b/optimizations/initial-opt/run.json @@ -37,6 +37,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.5 }, "solver": { @@ -99,4 +100,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 72fe588..33708f1 100644 --- a/optimizations/initial-opt/target.json +++ b/optimizations/initial-opt/target.json @@ -37,6 +37,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.5 }, "solver": { @@ -99,4 +100,4 @@ "save_time_sequence": false } } -} \ No newline at end of file +} diff --git a/optimizations/multiparameter-sdf-trajectory-surface-opt/state.json b/optimizations/multiparameter-sdf-trajectory-surface-opt/state.json index 71f167e..cb8a7d3 100644 --- a/optimizations/multiparameter-sdf-trajectory-surface-opt/state.json +++ b/optimizations/multiparameter-sdf-trajectory-surface-opt/state.json @@ -87,6 +87,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -170,4 +171,4 @@ "phi": 0, "type": "NeoHookean" } -} \ No newline at end of file +} diff --git a/optimizations/shape-trajectory-surface-opt-bspline/state.json b/optimizations/shape-trajectory-surface-opt-bspline/state.json index d229633..f85284e 100644 --- a/optimizations/shape-trajectory-surface-opt-bspline/state.json +++ b/optimizations/shape-trajectory-surface-opt-bspline/state.json @@ -87,6 +87,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -133,4 +134,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 60847e6..a4c4364 100644 --- a/optimizations/shape-trajectory-surface-opt-bspline/target.json +++ b/optimizations/shape-trajectory-surface-opt-bspline/target.json @@ -87,6 +87,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -137,4 +138,4 @@ "phi": 0, "type": "NeoHookean" } -} \ No newline at end of file +} diff --git a/optimizations/shape-trajectory-surface-opt-new/state.json b/optimizations/shape-trajectory-surface-opt-new/state.json index 79078fd..10add79 100644 --- a/optimizations/shape-trajectory-surface-opt-new/state.json +++ b/optimizations/shape-trajectory-surface-opt-new/state.json @@ -87,6 +87,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -133,4 +134,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 084c2ad..e28d191 100644 --- a/optimizations/shape-trajectory-surface-opt-new/target.json +++ b/optimizations/shape-trajectory-surface-opt-new/target.json @@ -87,6 +87,7 @@ }, "contact": { "enabled": true, + "use_convergent_formulation": true, "friction_coefficient": 0.0 }, "solver": { @@ -137,4 +138,4 @@ "phi": 0, "type": "NeoHookean" } -} \ No newline at end of file +}