diff --git a/README.md b/README.md index c870899..2827bff 100644 --- a/README.md +++ b/README.md @@ -17,5 +17,72 @@ This repository contains the scripts to regenerate the figures in the paper: } ``` -This branch contains updated scripts. For the original check the [original](https://github.com/polyfem/Decoupling-Simulation-Accuracy-from-Mesh-Quality/tree/original) branch. +### Python teaser +We created a simple [jupyter notebook](https://raw.githubusercontent.com/polyfem/Decoupling-Simulation-Accuracy-from-Mesh-Quality/master/Decoupling-Simulation-Accuracy-from-Mesh-Quality.ipynb) with an example to run the teaser image. + +This notebook can be interactively run with binder! +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/polyfem/Decoupling-Simulation-Accuracy-from-Mesh-Quality.git/master?filepath=Decoupling-Simulation-Accuracy-from-Mesh-Quality.ipynb) + +### Dependencies + +##### PolyFEM + +A specific version of [PolyFEM](https://github.com/polyfem/polyfem) is included as a submodule. To retrieve and compile it, run the following commands: + +``` +git submodule update --init --recursive +cd polyfem +mkdir build +cd build +cmake .. +make -j 8 +``` + +Make sure that [PARDISO](https://www.pardiso-project.org/) is found and enabled, otherwise you might not be able to generate certain figures (see below). In PolyFEM, `FindPardiso.cmake` will look for the PARDISO library in `~/.local` or `~/.pardiso`. If you installed PARDISO in a different location, you may need to update this file accordingly. + +##### Conda Environment + +Install [Miniconda](https://docs.conda.io/en/latest/miniconda.html) for Python 3, and create the environment for this paper from the `conda.yml` file: + +``` +conda env create -f conda.yml +``` + +##### PyRenderer (via Singularity/Docker) + +[PyRenderer](https://github.com/qnzhou/PyRenderer) is used to render the images in the paper. PyRenderer is a wrapper around [Mitsuba](https://github.com/mitsuba-renderer/mitsuba), and as such is a bit complicated to setup. +There is a [Docker image](https://hub.docker.com/r/qnzhou/pyrender) available on Docker-Hub. +We also provide a pre-built Singularity [Singularity](https://www.sylabs.io) image (>=v3.0.0) of PyRenderer. Singularity is similar to Docker, but does not require root privilege in order to run images. Please read the [documentation](https://sylabs.io/guides/3.3/user-guide/) to install it on your machine. + +-
Our Singularity image can be downloaded programmatically from our Google Drive using `gdown` (click to expand).

+``` +pip3 install --user gdown +gdown "https://drive.google.com/uc?id=1zfqiThhSRZkmNDeaXj2nGC1kf00kRIsK" +md5sum pyrenderer.sif +# 557ce7496b29fd11d0808f5ec918a995 +``` +

+ +- For docker users, make sure to: + 1. [Install Docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/) following official instructions. + 2. [Allow](https://docs.docker.com/install/linux/linux-postinstall/) to run docker as a non-root user. + +### Solver + +As stated in the paper, we use [PARDISO](https://www.pardiso-project.org/) for the following figures: +- Figure 7 +- Figure 8 +- Figure 11 +- Figure 21 +- Table 1 + +And [HYPRE](https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods) for the following figures: +- Figure 9 +- Figure 10 +- Figure 16 +- Figure 17 +- Figure 20 + + +If you try to generate the first figures with an iterative solver, running times may be exceedingly long, so it is not recommended. diff --git a/bridge/large_angle_strip_0.json b/bridge/large_angle_strip_0.json index 5ef549c..0bf0ac5 100644 --- a/bridge/large_angle_strip_0.json +++ b/bridge/large_angle_strip_0.json @@ -25,5 +25,24 @@ "err_lp": 0.019251172364018153, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_1.json b/bridge/large_angle_strip_1.json index 867b5e0..ab4d46b 100644 --- a/bridge/large_angle_strip_1.json +++ b/bridge/large_angle_strip_1.json @@ -25,5 +25,24 @@ "err_lp": 0.023046469357049414, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_2.json b/bridge/large_angle_strip_2.json index bc349c1..e089e8c 100644 --- a/bridge/large_angle_strip_2.json +++ b/bridge/large_angle_strip_2.json @@ -25,5 +25,24 @@ "err_lp": 0.018236384619905614, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_3.json b/bridge/large_angle_strip_3.json index 6afeec6..9afa713 100644 --- a/bridge/large_angle_strip_3.json +++ b/bridge/large_angle_strip_3.json @@ -25,5 +25,24 @@ "err_lp": 0.018232285249566823, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_4.json b/bridge/large_angle_strip_4.json index 9ca068e..b10d636 100644 --- a/bridge/large_angle_strip_4.json +++ b/bridge/large_angle_strip_4.json @@ -25,5 +25,24 @@ "err_lp": 0.018231336446474202, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_5.json b/bridge/large_angle_strip_5.json index 5b17cb2..e0519df 100644 --- a/bridge/large_angle_strip_5.json +++ b/bridge/large_angle_strip_5.json @@ -25,5 +25,24 @@ "err_lp": 0.01823195894247403, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_6.json b/bridge/large_angle_strip_6.json index 748d091..22d5259 100644 --- a/bridge/large_angle_strip_6.json +++ b/bridge/large_angle_strip_6.json @@ -25,5 +25,24 @@ "err_lp": 0.018231258884821137, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_7.json b/bridge/large_angle_strip_7.json index d07e944..6d75ebc 100644 --- a/bridge/large_angle_strip_7.json +++ b/bridge/large_angle_strip_7.json @@ -25,5 +25,24 @@ "err_lp": 0.018230633203504775, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_8.json b/bridge/large_angle_strip_8.json index bfbada6..3f1c776 100644 --- a/bridge/large_angle_strip_8.json +++ b/bridge/large_angle_strip_8.json @@ -25,5 +25,24 @@ "err_lp": 0.018230024632425103, "margin": 1e-05, "time_steps": "static" + }, + "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/bridge/large_angle_strip_8_no.json b/bridge/large_angle_strip_8_no.json index 11ddec8..d6f956b 100644 --- a/bridge/large_angle_strip_8_no.json +++ b/bridge/large_angle_strip_8_no.json @@ -25,5 +25,24 @@ "err_lp": 0.4788283491724556, "margin": 1e-05, "time_steps": "static" + }, + "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/common.json b/common.json index 433b2d3..2c7c3ca 100644 --- a/common.json +++ b/common.json @@ -2,6 +2,13 @@ "solver": { "linear": { "solver": "Eigen::SimplicialLDLT" + }, + "advanced": { + "characteristic_force_density": 1, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Euclidean" } }, "output": { diff --git a/main/conditioning_44000_bad.json b/main/conditioning_44000_bad.json index d912c74..9de490e 100644 --- a/main/conditioning_44000_bad.json +++ b/main/conditioning_44000_bad.json @@ -25,5 +25,24 @@ "err_lp": 0.4715054370582474, "margin": 1e-05, "time_steps": "static" + }, + "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/main/conditioning_44000_good.json b/main/conditioning_44000_good.json index efa5e8e..b4fd154 100644 --- a/main/conditioning_44000_good.json +++ b/main/conditioning_44000_good.json @@ -25,5 +25,24 @@ "err_lp": 0.47378407647641807, "margin": 1e-05, "time_steps": "static" + }, + "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/main/frog.json b/main/frog.json index 8d6fad8..a924aba 100644 --- a/main/frog.json +++ b/main/frog.json @@ -25,5 +25,24 @@ "err_lp": 0.7553350746811552, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-2d/large_angle_strip_0-L2.json b/neo-hookean-2d/large_angle_strip_0-L2.json new file mode 100644 index 0000000..de62321 --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_0-L2.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_1.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.0479061799330127, + "err_h1_semi": 0.9774200998395017, + "err_l2": 0.3778323839634954, + "err_linf": 1.0838820478227005, + "err_linf_grad": 1.7938916284263184, + "err_lp": 0.7119780003941851, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "L2", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_0-Linf.json b/neo-hookean-2d/large_angle_strip_0-Linf.json new file mode 100644 index 0000000..971a38d --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_0-Linf.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_1.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.0479061799330127, + "err_h1_semi": 0.9774200998395017, + "err_l2": 0.3778323839634954, + "err_linf": 1.0838820478227005, + "err_linf_grad": 1.7938916284263184, + "err_lp": 0.7119780003941851, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Linf", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_0.json b/neo-hookean-2d/large_angle_strip_0.json index 3447a35..d9bbfe8 100644 --- a/neo-hookean-2d/large_angle_strip_0.json +++ b/neo-hookean-2d/large_angle_strip_0.json @@ -77,5 +77,24 @@ "err_lp": 0.7119780003941851, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-2d/large_angle_strip_1-L2.json b/neo-hookean-2d/large_angle_strip_1-L2.json new file mode 100644 index 0000000..9a1db76 --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_1-L2.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_0.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.04962007021975, + "err_h1_semi": 0.9789602243848675, + "err_l2": 0.3786015991519885, + "err_linf": 1.0870276483647239, + "err_linf_grad": 1.7968880960149431, + "err_lp": 0.7132842951596436, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "L2", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_1-Linf.json b/neo-hookean-2d/large_angle_strip_1-Linf.json new file mode 100644 index 0000000..510f9db --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_1-Linf.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_0.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.04962007021975, + "err_h1_semi": 0.9789602243848675, + "err_l2": 0.3786015991519885, + "err_linf": 1.0870276483647239, + "err_linf_grad": 1.7968880960149431, + "err_lp": 0.7132842951596436, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Linf", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_1.json b/neo-hookean-2d/large_angle_strip_1.json index 7b00f4b..838c844 100644 --- a/neo-hookean-2d/large_angle_strip_1.json +++ b/neo-hookean-2d/large_angle_strip_1.json @@ -77,5 +77,24 @@ "err_lp": 0.7132842951596436, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-2d/large_angle_strip_3-L2.json b/neo-hookean-2d/large_angle_strip_3-L2.json new file mode 100644 index 0000000..31fafed --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_3-L2.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_3.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.0467473423193607, + "err_h1_semi": 0.9763834498882277, + "err_l2": 0.3773000893678771, + "err_linf": 1.081641230011373, + "err_linf_grad": 1.7917869898763696, + "err_lp": 0.7110756894922936, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "L2", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_3-Linf.json b/neo-hookean-2d/large_angle_strip_3-Linf.json new file mode 100644 index 0000000..660ef28 --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_3-Linf.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_3.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.0467473423193607, + "err_h1_semi": 0.9763834498882277, + "err_l2": 0.3773000893678771, + "err_linf": 1.081641230011373, + "err_linf_grad": 1.7917869898763696, + "err_lp": 0.7110756894922936, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Linf", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_3.json b/neo-hookean-2d/large_angle_strip_3.json index f03d0c6..a33cd81 100644 --- a/neo-hookean-2d/large_angle_strip_3.json +++ b/neo-hookean-2d/large_angle_strip_3.json @@ -77,5 +77,24 @@ "err_lp": 0.7110756894922936, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-2d/large_angle_strip_5-L2.json b/neo-hookean-2d/large_angle_strip_5-L2.json new file mode 100644 index 0000000..4a4a1c6 --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_5-L2.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_5.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.0464854052254466, + "err_h1_semi": 0.9761520212635967, + "err_l2": 0.3771722878643948, + "err_linf": 1.0811049733027682, + "err_linf_grad": 1.7912899111842726, + "err_lp": 0.7108631031561373, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "L2", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_5-Linf.json b/neo-hookean-2d/large_angle_strip_5-Linf.json new file mode 100644 index 0000000..d972976 --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_5-Linf.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_5.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.0464854052254466, + "err_h1_semi": 0.9761520212635967, + "err_l2": 0.3771722878643948, + "err_linf": 1.0811049733027682, + "err_linf_grad": 1.7912899111842726, + "err_lp": 0.7108631031561373, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Linf", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_5.json b/neo-hookean-2d/large_angle_strip_5.json index d4eb6d5..fec694d 100644 --- a/neo-hookean-2d/large_angle_strip_5.json +++ b/neo-hookean-2d/large_angle_strip_5.json @@ -77,5 +77,24 @@ "err_lp": 0.7108631031561373, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-2d/large_angle_strip_7-L2.json b/neo-hookean-2d/large_angle_strip_7-L2.json new file mode 100644 index 0000000..b0f8adb --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_7-L2.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_7.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.0462931645390992, + "err_h1_semi": 0.9759741411968101, + "err_l2": 0.3770992732376867, + "err_linf": 1.0808560981280206, + "err_linf_grad": 1.791008062425892, + "err_lp": 0.710733501905943, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "L2", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_7-Linf.json b/neo-hookean-2d/large_angle_strip_7-Linf.json new file mode 100644 index 0000000..203bfbd --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_7-Linf.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_7.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 1.0462931645390992, + "err_h1_semi": 0.9759741411968101, + "err_l2": 0.3770992732376867, + "err_linf": 1.0808560981280206, + "err_linf_grad": 1.791008062425892, + "err_lp": 0.710733501905943, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Linf", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_7.json b/neo-hookean-2d/large_angle_strip_7.json index 24ab956..99a4b68 100644 --- a/neo-hookean-2d/large_angle_strip_7.json +++ b/neo-hookean-2d/large_angle_strip_7.json @@ -77,5 +77,24 @@ "err_lp": 0.710733501905943, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-2d/large_angle_strip_7_no-L2.json b/neo-hookean-2d/large_angle_strip_7_no-L2.json new file mode 100644 index 0000000..18fe3e0 --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_7_no-L2.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_7.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": false + }, + "tests": { + "err_h1": 0.8967833584641723, + "err_h1_semi": 0.827274519364973, + "err_l2": 0.34617518921455526, + "err_linf": 0.9517243357949193, + "err_linf_grad": 1.4958217250385772, + "err_lp": 0.6320132051938484, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "L2", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_7_no-Linf.json b/neo-hookean-2d/large_angle_strip_7_no-Linf.json new file mode 100644 index 0000000..606295b --- /dev/null +++ b/neo-hookean-2d/large_angle_strip_7_no-Linf.json @@ -0,0 +1,101 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0 + ] + } + ], + "rhs": [ + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_strip_7.obj", + "surface_selection": [ + { + "box": [ + [ + 0, + 0 + ], + [ + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0.999 + ], + [ + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.32967032967032966, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": false + }, + "tests": { + "err_h1": 0.8967833584641723, + "err_h1_semi": 0.827274519364973, + "err_l2": 0.34617518921455526, + "err_linf": 0.9517243357949193, + "err_linf_grad": 1.4958217250385772, + "err_lp": 0.6320132051938484, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Linf", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-2d/large_angle_strip_7_no.json b/neo-hookean-2d/large_angle_strip_7_no.json index 797f3c0..3ea5582 100644 --- a/neo-hookean-2d/large_angle_strip_7_no.json +++ b/neo-hookean-2d/large_angle_strip_7_no.json @@ -77,5 +77,24 @@ "err_lp": 0.6320132051938484, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-3d/large_angle_0-L2.json b/neo-hookean-3d/large_angle_0-L2.json new file mode 100644 index 0000000..fea43eb --- /dev/null +++ b/neo-hookean-3d/large_angle_0-L2.json @@ -0,0 +1,108 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0, + 0 + ] + } + ], + "rhs": [ + 0, + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_0.msh", + "surface_selection": [ + { + "box": [ + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0, + 0.999 + ], + [ + 1, + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.5769230769230769, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 0.5307766761019785, + "err_h1_semi": 0.49579626489252393, + "err_l2": 0.18949919158795078, + "err_linf": 1.201193507226776, + "err_linf_grad": 1.9607385139388658, + "err_lp": 0.6499191805216775, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "L2", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-3d/large_angle_0-Linf.json b/neo-hookean-3d/large_angle_0-Linf.json new file mode 100644 index 0000000..3f2aee5 --- /dev/null +++ b/neo-hookean-3d/large_angle_0-Linf.json @@ -0,0 +1,108 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0, + 0 + ] + } + ], + "rhs": [ + 0, + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_0.msh", + "surface_selection": [ + { + "box": [ + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0, + 0.999 + ], + [ + 1, + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.5769230769230769, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 0.5307766761019785, + "err_h1_semi": 0.49579626489252393, + "err_l2": 0.18949919158795078, + "err_linf": 1.201193507226776, + "err_linf_grad": 1.9607385139388658, + "err_lp": 0.6499191805216775, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Linf", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-3d/large_angle_0.json b/neo-hookean-3d/large_angle_0.json index 1b8831c..05363a1 100644 --- a/neo-hookean-3d/large_angle_0.json +++ b/neo-hookean-3d/large_angle_0.json @@ -84,5 +84,24 @@ "err_lp": 0.6499191805216775, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-3d/large_angle_1-L2.json b/neo-hookean-3d/large_angle_1-L2.json new file mode 100644 index 0000000..c275775 --- /dev/null +++ b/neo-hookean-3d/large_angle_1-L2.json @@ -0,0 +1,108 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0, + 0 + ] + } + ], + "rhs": [ + 0, + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_1.msh", + "surface_selection": [ + { + "box": [ + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0, + 0.999 + ], + [ + 1, + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.5769230769230769, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 0.5343614667560578, + "err_h1_semi": 0.4990563879192635, + "err_l2": 0.1910102060903109, + "err_linf": 1.2083794523065183, + "err_linf_grad": 1.9665181823259006, + "err_lp": 0.6547417834993308, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "L2", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-3d/large_angle_1-Linf.json b/neo-hookean-3d/large_angle_1-Linf.json new file mode 100644 index 0000000..9c6a6b2 --- /dev/null +++ b/neo-hookean-3d/large_angle_1-Linf.json @@ -0,0 +1,108 @@ +{ + "boundary_conditions": { + "dirichlet_boundary": [ + { + "id": 1, + "value": [ + 0, + 0, + 0 + ] + } + ], + "neumann_boundary": [ + { + "id": 3, + "value": [ + 0.1, + 0, + 0 + ] + } + ], + "rhs": [ + 0, + 0, + 0 + ] + }, + "common": "../common.json", + "geometry": { + "advanced": { + "normalize_mesh": true + }, + "mesh": "large_angle_1.msh", + "surface_selection": [ + { + "box": [ + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 0.001 + ] + ], + "id": 1, + "relative": true + }, + { + "box": [ + [ + 0, + 0, + 0.999 + ], + [ + 1, + 1, + 1 + ] + ], + "id": 3, + "relative": true + } + ] + }, + "materials": { + "lambda": 0.5769230769230769, + "mu": 0.3846153846153846, + "type": "NeoHookean" + }, + "space": { + "use_p_ref": true + }, + "tests": { + "err_h1": 0.5343614667560578, + "err_h1_semi": 0.4990563879192635, + "err_l2": 0.1910102060903109, + "err_linf": 1.2083794523065183, + "err_linf_grad": 1.9665181823259006, + "err_lp": 0.6547417834993308, + "margin": 1e-05, + "time_steps": "static" + }, + "solver": { + "advanced": { + "characteristic_force_density": 10000, + "characteristic_length": 1 + }, + "nonlinear": { + "norm_type": "Linf", + "first_grad_norm_tol": 1e-12, + "grad_norm_tol": 1e-10, + "rel_grad_norm_tol": 1e-10, + "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/neo-hookean-3d/large_angle_1.json b/neo-hookean-3d/large_angle_1.json index c15d8c5..2a38f74 100644 --- a/neo-hookean-3d/large_angle_1.json +++ b/neo-hookean-3d/large_angle_1.json @@ -84,5 +84,24 @@ "err_lp": 0.6547417834993308, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-3d/large_angle_3.json b/neo-hookean-3d/large_angle_3.json index 737727c..51a888c 100644 --- a/neo-hookean-3d/large_angle_3.json +++ b/neo-hookean-3d/large_angle_3.json @@ -84,5 +84,24 @@ "err_lp": 0.2877752493790054, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-3d/large_angle_5.json b/neo-hookean-3d/large_angle_5.json index e6d72b7..8c9eba6 100644 --- a/neo-hookean-3d/large_angle_5.json +++ b/neo-hookean-3d/large_angle_5.json @@ -84,5 +84,24 @@ "err_lp": 0.2877752493790054, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-3d/large_angle_7.json b/neo-hookean-3d/large_angle_7.json index 6c11bf6..0d5cb90 100644 --- a/neo-hookean-3d/large_angle_7.json +++ b/neo-hookean-3d/large_angle_7.json @@ -84,5 +84,24 @@ "err_lp": 0.2877752493790054, "margin": 1e-05, "time_steps": "static" + }, + "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/neo-hookean-3d/large_angle_7_no.json b/neo-hookean-3d/large_angle_7_no.json index 90c19da..a89f141 100644 --- a/neo-hookean-3d/large_angle_7_no.json +++ b/neo-hookean-3d/large_angle_7_no.json @@ -84,5 +84,24 @@ "err_lp": 0.2877752493790054, "margin": 1e-05, "time_steps": "static" + }, + "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