diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-1.g b/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-1.g new file mode 100644 index 0000000..21d639f Binary files /dev/null and b/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-1.g differ diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-1.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-1.yaml new file mode 100644 index 0000000..1d3dc60 --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-1.yaml @@ -0,0 +1,44 @@ +type: single +input mesh file: cube-test1-1.g +output mesh file: cube-test1-1.e +model: + type: solid mechanics + material: + blocks: + fine: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: central difference + initial time: 0.0 + final time: 1 + time step: 0.01 + CFL: 0.1 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "-1.0e-04 * 1.0" + - node set: nsall + component: y + function: "-1.0e-04 * 0.0" + velocity: + - node set: nsall + component: x + function: "100.0 * 1.0" + - node set: nsall + component: y + function: "100.0 * 0.0" +boundary conditions: + Schwarz contact: + - side set: ssx+ + source: "cube-test1-2.yaml" + source block: coarse + source side set: ssx- +solver: + type: explicit solver + step: explicit \ No newline at end of file diff --git a/examples/contact/static/cubes_30_deg/cube-1.g b/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-2.g similarity index 69% rename from examples/contact/static/cubes_30_deg/cube-1.g rename to examples/contact/explicit-dynamic/inclined-cubes/cube-test1-2.g index a489430..053b618 100644 Binary files a/examples/contact/static/cubes_30_deg/cube-1.g and b/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-2.g differ diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-2.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-2.yaml new file mode 100644 index 0000000..560d2db --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cube-test1-2.yaml @@ -0,0 +1,44 @@ +type: single +input mesh file: cube-test1-2.g +output mesh file: cube-test1-2.e +model: + type: solid mechanics + material: + blocks: + coarse: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: central difference + initial time: 0.0 + final time: 1 + time step: 0.01 + CFL: 0.1 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "1.0e-04 * 1.0" + - node set: nsall + component: y + function: "1.0e-04 * 0.0" + velocity: + - node set: nsall + component: x + function: "-100.0 * 1.0" + - node set: nsall + component: y + function: "-100.0 * 0.0" +boundary conditions: + Schwarz contact: + - side set: ssx- + source: "cube-test1-1.yaml" + source block: fine + source side set: ssx+ +solver: + type: explicit solver + step: explicit \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-1.g b/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-1.g new file mode 100644 index 0000000..ac1de78 Binary files /dev/null and b/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-1.g differ diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-1.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-1.yaml new file mode 100644 index 0000000..b7c755e --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-1.yaml @@ -0,0 +1,44 @@ +type: single +input mesh file: cube-test2-1.g +output mesh file: cube-test2-1.e +model: + type: solid mechanics + material: + blocks: + fine: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: central difference + initial time: 0.0 + final time: 1 + time step: 0.01 + CFL: 0.1 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "-1.0e-04 * 0.9238795325112867" + - node set: nsall + component: y + function: "-1.0e-04 * 0.3826834323650898" + velocity: + - node set: nsall + component: x + function: "100.0 * 0.9238795325112867" + - node set: nsall + component: y + function: "100.0 * 0.3826834323650898" +boundary conditions: + Schwarz contact: + - side set: ssx+ + source: "cube-test2-2.yaml" + source block: coarse + source side set: ssx- +solver: + type: explicit solver + step: explicit \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-2.g b/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-2.g new file mode 100644 index 0000000..7e03ac3 Binary files /dev/null and b/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-2.g differ diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-2.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-2.yaml new file mode 100644 index 0000000..8fab2d6 --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cube-test2-2.yaml @@ -0,0 +1,44 @@ +type: single +input mesh file: cube-test2-2.g +output mesh file: cube-test2-2.e +model: + type: solid mechanics + material: + blocks: + coarse: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: central difference + initial time: 0.0 + final time: 1 + time step: 0.01 + CFL: 0.1 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "1.0e-04 * 0.9238795325112867" + - node set: nsall + component: y + function: "1.0e-04 * 0.3826834323650898" + velocity: + - node set: nsall + component: x + function: "-100.0 * 0.9238795325112867" + - node set: nsall + component: y + function: "-100.0 * 0.3826834323650898" +boundary conditions: + Schwarz contact: + - side set: ssx- + source: "cube-test2-1.yaml" + source block: fine + source side set: ssx+ +solver: + type: explicit solver + step: explicit \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-1.g b/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-1.g new file mode 100644 index 0000000..4ef6027 Binary files /dev/null and b/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-1.g differ diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-1.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-1.yaml new file mode 100644 index 0000000..520a054 --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-1.yaml @@ -0,0 +1,44 @@ +type: single +input mesh file: cube-test3-1.g +output mesh file: cube-test3-1.e +model: + type: solid mechanics + material: + blocks: + fine: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: central difference + initial time: 0.0 + final time: 1 + time step: 0.01 + CFL: 0.1 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "-1.0e-04 * 0.7071067811865476" + - node set: nsall + component: y + function: "-1.0e-04 * 0.7071067811865475" + velocity: + - node set: nsall + component: x + function: "100.0 * 0.7071067811865476" + - node set: nsall + component: y + function: "100.0 * 0.7071067811865475" +boundary conditions: + Schwarz contact: + - side set: ssx+ + source: "cube-test3-2.yaml" + source block: coarse + source side set: ssx- +solver: + type: explicit solver + step: explicit \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-2.g b/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-2.g new file mode 100644 index 0000000..2a4d7b4 Binary files /dev/null and b/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-2.g differ diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-2.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-2.yaml new file mode 100644 index 0000000..1c0d07c --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cube-test3-2.yaml @@ -0,0 +1,44 @@ +type: single +input mesh file: cube-test3-2.g +output mesh file: cube-test3-2.e +model: + type: solid mechanics + material: + blocks: + coarse: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: central difference + initial time: 0.0 + final time: 1 + time step: 0.01 + CFL: 0.1 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "1.0e-04 * 0.7071067811865476" + - node set: nsall + component: y + function: "1.0e-04 * 0.7071067811865475" + velocity: + - node set: nsall + component: x + function: "-100.0 * 0.7071067811865476" + - node set: nsall + component: y + function: "-100.0 * 0.7071067811865475" +boundary conditions: + Schwarz contact: + - side set: ssx- + source: "cube-test3-1.yaml" + source block: fine + source side set: ssx+ +solver: + type: explicit solver + step: explicit \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-1.g b/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-1.g new file mode 100644 index 0000000..49d7451 Binary files /dev/null and b/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-1.g differ diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-1.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-1.yaml new file mode 100644 index 0000000..c1c2aad --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-1.yaml @@ -0,0 +1,44 @@ +type: single +input mesh file: cube-test4-1.g +output mesh file: cube-test4-1.e +model: + type: solid mechanics + material: + blocks: + fine: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: central difference + initial time: 0.0 + final time: 1 + time step: 0.01 + CFL: 0.1 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "-1.0e-04 * 6.123233995736766e-17" + - node set: nsall + component: y + function: "-1.0e-04 * 1.0" + velocity: + - node set: nsall + component: x + function: "100.0 * 6.123233995736766e-17" + - node set: nsall + component: y + function: "100.0 * 1.0" +boundary conditions: + Schwarz contact: + - side set: ssx+ + source: "cube-test4-2.yaml" + source block: coarse + source side set: ssx- +solver: + type: explicit solver + step: explicit \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-2.g b/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-2.g new file mode 100644 index 0000000..ad0ea1d Binary files /dev/null and b/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-2.g differ diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-2.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-2.yaml new file mode 100644 index 0000000..8aad038 --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cube-test4-2.yaml @@ -0,0 +1,44 @@ +type: single +input mesh file: cube-test4-2.g +output mesh file: cube-test4-2.e +model: + type: solid mechanics + material: + blocks: + coarse: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: central difference + initial time: 0.0 + final time: 1 + time step: 0.01 + CFL: 0.1 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "1.0e-04 * 6.123233995736766e-17" + - node set: nsall + component: y + function: "1.0e-04 * 1.0" + velocity: + - node set: nsall + component: x + function: "-100.0 * 6.123233995736766e-17" + - node set: nsall + component: y + function: "-100.0 * 1.0" +boundary conditions: + Schwarz contact: + - side set: ssx- + source: "cube-test4-1.yaml" + source block: fine + source side set: ssx+ +solver: + type: explicit solver + step: explicit \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cubes-test1.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cubes-test1.yaml new file mode 100644 index 0000000..9afb48c --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cubes-test1.yaml @@ -0,0 +1,14 @@ +type: multi +domains: ["cube-test1-1.yaml", "cube-test1-2.yaml"] +Exodus output interval: 1 +CSV output interval: 0 +initial time: -1.0e-06 +time step: 1.e-06 +final time: .001 +same time step for domains: true +relaxation parameter: 1.0 +naive stabilized: true +minimum iterations: 1 +maximum iterations: 16 +relative tolerance: 1.0e-12 +absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cubes-test2.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cubes-test2.yaml new file mode 100644 index 0000000..f5e7155 --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cubes-test2.yaml @@ -0,0 +1,14 @@ +type: multi +domains: ["cube-test2-1.yaml", "cube-test2-2.yaml"] +Exodus output interval: 1 +CSV output interval: 0 +initial time: -1.0e-06 +time step: 1.e-06 +final time: .001 +same time step for domains: true +relaxation parameter: 1.0 +naive stabilized: true +minimum iterations: 1 +maximum iterations: 16 +relative tolerance: 1.0e-12 +absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cubes-test3.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cubes-test3.yaml new file mode 100644 index 0000000..79eab55 --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cubes-test3.yaml @@ -0,0 +1,14 @@ +type: multi +domains: ["cube-test3-1.yaml", "cube-test3-2.yaml"] +Exodus output interval: 1 +CSV output interval: 0 +initial time: -1.0e-06 +time step: 1.e-06 +final time: .001 +same time step for domains: true +relaxation parameter: 1.0 +naive stabilized: true +minimum iterations: 1 +maximum iterations: 16 +relative tolerance: 1.0e-12 +absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cubes-test4.yaml b/examples/contact/explicit-dynamic/inclined-cubes/cubes-test4.yaml new file mode 100644 index 0000000..076495e --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cubes-test4.yaml @@ -0,0 +1,14 @@ +type: multi +domains: ["cube-test4-1.yaml", "cube-test4-2.yaml"] +Exodus output interval: 1 +CSV output interval: 0 +initial time: -1.0e-06 +time step: 1.e-06 +final time: .001 +same time step for domains: true +relaxation parameter: 1.0 +naive stabilized: true +minimum iterations: 1 +maximum iterations: 16 +relative tolerance: 1.0e-12 +absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/explicit-dynamic/inclined-cubes/cubes.jou b/examples/contact/explicit-dynamic/inclined-cubes/cubes.jou new file mode 100644 index 0000000..3e6ab63 --- /dev/null +++ b/examples/contact/explicit-dynamic/inclined-cubes/cubes.jou @@ -0,0 +1,141 @@ +${side = 1.0} +${length = 1.0} +${separation = 0.0} +${nel_fine = 3} +${nel_coarse = 2} +${h_fine = length / nel_fine} +${h_coarse = length / nel_coarse} + +${area = side * side} +${offset = (length + separation) / 2.0} + +create brick x {length} y {side} z {side} +move volume 1 x {-offset} include_merged +volume 1 scheme tetmesh +volume 1 size {h_fine} +mesh volume 1 +block 1 volume 1 +block 1 element type tetra4 +block 1 name "fine" +nodeset 1 surface 4 +nodeset 1 name "nsx-" +nodeset 2 surface 6 +nodeset 2 name "nsx+" +nodeset 3 surface 3 +nodeset 3 name "nsy-" +nodeset 4 surface 5 +nodeset 4 name "nsy+" +nodeset 5 surface 2 +nodeset 5 name "nsz-" +nodeset 6 surface 1 +nodeset 6 name "nsz+" +nodeset 7 volume all +nodeset 7 name "nsall" +sideset 1 surface 4 +sideset 1 name "ssx-" +sideset 2 surface 6 +sideset 2 name "ssx+" +sideset 3 surface 3 +sideset 3 name "ssy-" +sideset 4 surface 5 +sideset 4 name "ssy+" +sideset 5 surface 2 +sideset 5 name "ssz-" +sideset 6 surface 1 +sideset 6 name "ssz+" +set large exodus file off +export mesh "cube-test1-1.g" overwrite +move volume 1 x {offset} include_merged + +${rot_angle = 22.5} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.9238795325112867} +${sinangle = 0.3826834323650898} +move volume 1 x {-offset*cosangle} y {-offset*sinangle} include_merged +export mesh "cube-test2-1.g" overwrite +move volume 1 x {offset*cosangle} y {offset*sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +${rot_angle = 45} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.7071067811865476} +${sinangle = 0.7071067811865476} +move volume 1 x {-offset*cosangle} y {-offset*sinangle} include_merged +export mesh "cube-test3-1.g" overwrite +move volume 1 x {offset*cosangle} y {offset*sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +${rot_angle = 90} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.0} +${sinangle = 1.0} +move volume 1 x {-offset*cosangle} y {-offset*sinangle} include_merged +export mesh "cube-test4-1.g" overwrite +move volume 1 x {offset*cosangle} y {offset*sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +delete mesh + +move volume 1 x {offset} include_merged +volume 1 scheme map +volume 1 size {h_coarse} +mesh volume 1 +block 1 volume 1 +block 1 element type hex8 +block 1 name "coarse" +nodeset 1 surface 4 +nodeset 1 name "nsx-" +nodeset 2 surface 6 +nodeset 2 name "nsx+" +nodeset 3 surface 3 +nodeset 3 name "nsy-" +nodeset 4 surface 5 +nodeset 4 name "nsy+" +nodeset 5 surface 2 +nodeset 5 name "nsz-" +nodeset 6 surface 1 +nodeset 6 name "nsz+" +nodeset 7 volume all +nodeset 7 name "nsall" +sideset 1 surface 4 +sideset 1 name "ssx-" +sideset 2 surface 6 +sideset 2 name "ssx+" +sideset 3 surface 3 +sideset 3 name "ssy-" +sideset 4 surface 5 +sideset 4 name "ssy+" +sideset 5 surface 2 +sideset 5 name "ssz-" +sideset 6 surface 1 +sideset 6 name "ssz+" +set large exodus file off +export mesh "cube-test1-2.g" overwrite +move volume 1 x {-offset} include_merged + +${rot_angle = 22.5} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.9238795325112867} +${sinangle = 0.3826834323650898} +move volume 1 x {offset * cosangle} y {offset * sinangle} include_merged +export mesh "cube-test2-2.g" overwrite +move volume 1 x {-offset * cosangle} y {-offset * sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +${rot_angle = 45} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.7071067811865476} +${sinangle = 0.7071067811865476} +move volume 1 x {offset * cosangle} y {offset * sinangle} include_merged +export mesh "cube-test3-2.g" overwrite +move volume 1 x {-offset * cosangle} y {-offset * sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +${rot_angle = 90} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.0} +${sinangle = 1.0} +move volume 1 x {offset * cosangle} y {offset * sinangle} include_merged +export mesh "cube-test4-2.g" overwrite +move volume 1 x {-offset * cosangle} y {-offset * sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} \ No newline at end of file diff --git a/examples/contact/dynamic/2_bars/bar-1.g b/examples/contact/implicit-dynamic/2_bars/bar-1.g similarity index 100% rename from examples/contact/dynamic/2_bars/bar-1.g rename to examples/contact/implicit-dynamic/2_bars/bar-1.g diff --git a/examples/contact/dynamic/2_bars/bar-1.yaml b/examples/contact/implicit-dynamic/2_bars/bar-1.yaml similarity index 100% rename from examples/contact/dynamic/2_bars/bar-1.yaml rename to examples/contact/implicit-dynamic/2_bars/bar-1.yaml diff --git a/examples/contact/dynamic/2_bars/bar-2.g b/examples/contact/implicit-dynamic/2_bars/bar-2.g similarity index 100% rename from examples/contact/dynamic/2_bars/bar-2.g rename to examples/contact/implicit-dynamic/2_bars/bar-2.g diff --git a/examples/contact/dynamic/2_bars/bar-2.yaml b/examples/contact/implicit-dynamic/2_bars/bar-2.yaml similarity index 100% rename from examples/contact/dynamic/2_bars/bar-2.yaml rename to examples/contact/implicit-dynamic/2_bars/bar-2.yaml diff --git a/examples/contact/dynamic/2_bars/bars.jou b/examples/contact/implicit-dynamic/2_bars/bars.jou similarity index 100% rename from examples/contact/dynamic/2_bars/bars.jou rename to examples/contact/implicit-dynamic/2_bars/bars.jou diff --git a/examples/contact/dynamic/2_bars/bars.yaml b/examples/contact/implicit-dynamic/2_bars/bars.yaml similarity index 100% rename from examples/contact/dynamic/2_bars/bars.yaml rename to examples/contact/implicit-dynamic/2_bars/bars.yaml diff --git a/examples/contact/dynamic/3_bars/bar-1.g b/examples/contact/implicit-dynamic/3_bars/bar-1.g similarity index 100% rename from examples/contact/dynamic/3_bars/bar-1.g rename to examples/contact/implicit-dynamic/3_bars/bar-1.g diff --git a/examples/contact/dynamic/3_bars/bar-1.yaml b/examples/contact/implicit-dynamic/3_bars/bar-1.yaml similarity index 100% rename from examples/contact/dynamic/3_bars/bar-1.yaml rename to examples/contact/implicit-dynamic/3_bars/bar-1.yaml diff --git a/examples/contact/dynamic/3_bars/bar-2.g b/examples/contact/implicit-dynamic/3_bars/bar-2.g similarity index 100% rename from examples/contact/dynamic/3_bars/bar-2.g rename to examples/contact/implicit-dynamic/3_bars/bar-2.g diff --git a/examples/contact/dynamic/3_bars/bar-2.yaml b/examples/contact/implicit-dynamic/3_bars/bar-2.yaml similarity index 100% rename from examples/contact/dynamic/3_bars/bar-2.yaml rename to examples/contact/implicit-dynamic/3_bars/bar-2.yaml diff --git a/examples/contact/dynamic/3_bars/bar-3.g b/examples/contact/implicit-dynamic/3_bars/bar-3.g similarity index 100% rename from examples/contact/dynamic/3_bars/bar-3.g rename to examples/contact/implicit-dynamic/3_bars/bar-3.g diff --git a/examples/contact/dynamic/3_bars/bar-3.yaml b/examples/contact/implicit-dynamic/3_bars/bar-3.yaml similarity index 100% rename from examples/contact/dynamic/3_bars/bar-3.yaml rename to examples/contact/implicit-dynamic/3_bars/bar-3.yaml diff --git a/examples/contact/dynamic/3_bars/bars.jou b/examples/contact/implicit-dynamic/3_bars/bars.jou similarity index 100% rename from examples/contact/dynamic/3_bars/bars.jou rename to examples/contact/implicit-dynamic/3_bars/bars.jou diff --git a/examples/contact/dynamic/3_bars/bars.yaml b/examples/contact/implicit-dynamic/3_bars/bars.yaml similarity index 100% rename from examples/contact/dynamic/3_bars/bars.yaml rename to examples/contact/implicit-dynamic/3_bars/bars.yaml diff --git a/examples/contact/static/cubes_30_deg/cube-1.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-1-template.yaml similarity index 58% rename from examples/contact/static/cubes_30_deg/cube-1.yaml rename to examples/contact/implicit-dynamic/inclined-cubes/cube-1-template.yaml index 8fdee0f..b762e2a 100644 --- a/examples/contact/static/cubes_30_deg/cube-1.yaml +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-1-template.yaml @@ -1,6 +1,6 @@ type: single -input mesh file: cube-1.g -output mesh file: cube-1.e +input mesh file: {input_mesh_file}-1.g +output mesh file: {input_mesh_file}-1.e model: type: solid mechanics material: @@ -12,31 +12,28 @@ model: Poisson's ratio: 0.25 density: 1000.0 time integrator: - type: quasi static - time step: 0.5 - initial equilibrium: true + type: Newmark + β: 0.25 + γ: 0.5 initial conditions: displacement: - node set: nsall component: x - function: "0.8660254037844387 * 0.1 * (1.0 - abs(t))" + function: "-1.0e-04 * {cosangle}" - node set: nsall component: y - function: "0.5 * 0.1 * (1.0 - abs(t))" -boundary conditions: - Dirichlet: - - node set: nsx- + function: "-1.0e-04 * {sinangle}" + velocity: + - node set: nsall component: x - function: "0.8660254037844387 * 0.1 * (1.0 - abs(t))" - - node set: nsy- + function: "100.0 * {cosangle}" + - node set: nsall component: y - function: "0.5 * 0.1 * (1.0 - abs(t))" - - node set: nsz- - component: z - function: "0.0" + function: "100.0 * {sinangle}" +boundary conditions: Schwarz contact: - side set: ssx+ - source: "cube-2.yaml" + source: "{input_mesh_file}-2.yaml" source block: coarse source side set: ssx- solver: diff --git a/examples/contact/static/cubes_30_deg/cube-2.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-2-template.yaml similarity index 57% rename from examples/contact/static/cubes_30_deg/cube-2.yaml rename to examples/contact/implicit-dynamic/inclined-cubes/cube-2-template.yaml index 3734e1e..797cc39 100644 --- a/examples/contact/static/cubes_30_deg/cube-2.yaml +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-2-template.yaml @@ -1,6 +1,6 @@ type: single -input mesh file: cube-2.g -output mesh file: cube-2.e +input mesh file: {input_mesh_file}-2.g +output mesh file: {input_mesh_file}-2.e model: type: solid mechanics material: @@ -12,31 +12,28 @@ model: Poisson's ratio: 0.25 density: 1000.0 time integrator: - type: quasi static - time step: 0.5 - initial equilibrium: true + type: Newmark + β: 0.25 + γ: 0.5 initial conditions: displacement: - node set: nsall component: x - function: "0.8660254037844387 * 0.1 * (abs(t) - 1.0)" + function: "1.0e-04 * {cosangle}" - node set: nsall component: y - function: "0.5 * 0.1 * (abs(t) - 1.0)" -boundary conditions: - Dirichlet: - - node set: nsx+ + function: "1.0e-04 * {sinangle}" + velocity: + - node set: nsall component: x - function: "0.8660254037844387 * 0.1 * (abs(t) - 1.0)" - - node set: nsy- + function: "-100.0 * {cosangle}" + - node set: nsall component: y - function: "0.5 * 0.1 * (abs(t) - 1.0)" - - node set: nsz- - component: z - function: "0.0" + function: "-100.0 * {sinangle}" +boundary conditions: Schwarz contact: - side set: ssx- - source: "cube-1.yaml" + source: "{input_mesh_file}-1.yaml" source block: fine source side set: ssx+ solver: diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-1.g b/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-1.g new file mode 100644 index 0000000..21d639f Binary files /dev/null and b/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-1.g differ diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-1.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-1.yaml new file mode 100644 index 0000000..e3288fd --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-1.yaml @@ -0,0 +1,45 @@ +type: single +input mesh file: cube-test1-1.g +output mesh file: cube-test1-1.e +model: + type: solid mechanics + material: + blocks: + fine: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: Newmark + β: 0.25 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "-1.0e-04 * 1.0" + - node set: nsall + component: y + function: "-1.0e-04 * 0.0" + velocity: + - node set: nsall + component: x + function: "100.0 * 1.0" + - node set: nsall + component: y + function: "100.0 * 0.0" +boundary conditions: + Schwarz contact: + - side set: ssx+ + source: "cube-test1-2.yaml" + source block: coarse + source side set: ssx- +solver: + type: Hessian minimizer + step: full Newton + minimum iterations: 1 + maximum iterations: 16 + relative tolerance: 1.0e-10 + absolute tolerance: 1.0e-06 \ No newline at end of file diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-2.g b/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-2.g new file mode 100644 index 0000000..053b618 Binary files /dev/null and b/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-2.g differ diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-2.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-2.yaml new file mode 100644 index 0000000..415ddd3 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-test1-2.yaml @@ -0,0 +1,45 @@ +type: single +input mesh file: cube-test1-2.g +output mesh file: cube-test1-2.e +model: + type: solid mechanics + material: + blocks: + coarse: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: Newmark + β: 0.25 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "1.0e-04 * 1.0" + - node set: nsall + component: y + function: "1.0e-04 * 0.0" + velocity: + - node set: nsall + component: x + function: "-100.0 * 1.0" + - node set: nsall + component: y + function: "-100.0 * 0.0" +boundary conditions: + Schwarz contact: + - side set: ssx- + source: "cube-test1-1.yaml" + source block: fine + source side set: ssx+ +solver: + type: Hessian minimizer + step: full Newton + minimum iterations: 1 + maximum iterations: 16 + relative tolerance: 1.0e-10 + absolute tolerance: 1.0e-06 diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-1.g b/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-1.g new file mode 100644 index 0000000..ac1de78 Binary files /dev/null and b/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-1.g differ diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-1.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-1.yaml new file mode 100644 index 0000000..25b61c2 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-1.yaml @@ -0,0 +1,45 @@ +type: single +input mesh file: cube-test2-1.g +output mesh file: cube-test2-1.e +model: + type: solid mechanics + material: + blocks: + fine: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: Newmark + β: 0.25 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "-1.0e-04 * 0.9238795325112867" + - node set: nsall + component: y + function: "-1.0e-04 * 0.3826834323650898" + velocity: + - node set: nsall + component: x + function: "100.0 * 0.9238795325112867" + - node set: nsall + component: y + function: "100.0 * 0.3826834323650898" +boundary conditions: + Schwarz contact: + - side set: ssx+ + source: "cube-test2-2.yaml" + source block: coarse + source side set: ssx- +solver: + type: Hessian minimizer + step: full Newton + minimum iterations: 1 + maximum iterations: 16 + relative tolerance: 1.0e-10 + absolute tolerance: 1.0e-06 \ No newline at end of file diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-2.g b/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-2.g new file mode 100644 index 0000000..7e03ac3 Binary files /dev/null and b/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-2.g differ diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-2.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-2.yaml new file mode 100644 index 0000000..4bc66aa --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-test2-2.yaml @@ -0,0 +1,45 @@ +type: single +input mesh file: cube-test2-2.g +output mesh file: cube-test2-2.e +model: + type: solid mechanics + material: + blocks: + coarse: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: Newmark + β: 0.25 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "1.0e-04 * 0.9238795325112867" + - node set: nsall + component: y + function: "1.0e-04 * 0.3826834323650898" + velocity: + - node set: nsall + component: x + function: "-100.0 * 0.9238795325112867" + - node set: nsall + component: y + function: "-100.0 * 0.3826834323650898" +boundary conditions: + Schwarz contact: + - side set: ssx- + source: "cube-test2-1.yaml" + source block: fine + source side set: ssx+ +solver: + type: Hessian minimizer + step: full Newton + minimum iterations: 1 + maximum iterations: 16 + relative tolerance: 1.0e-10 + absolute tolerance: 1.0e-06 diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-1.g b/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-1.g new file mode 100644 index 0000000..4ef6027 Binary files /dev/null and b/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-1.g differ diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-1.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-1.yaml new file mode 100644 index 0000000..a898fa3 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-1.yaml @@ -0,0 +1,45 @@ +type: single +input mesh file: cube-test3-1.g +output mesh file: cube-test3-1.e +model: + type: solid mechanics + material: + blocks: + fine: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: Newmark + β: 0.25 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "-1.0e-04 * 0.7071067811865476" + - node set: nsall + component: y + function: "-1.0e-04 * 0.7071067811865475" + velocity: + - node set: nsall + component: x + function: "100.0 * 0.7071067811865476" + - node set: nsall + component: y + function: "100.0 * 0.7071067811865475" +boundary conditions: + Schwarz contact: + - side set: ssx+ + source: "cube-test3-2.yaml" + source block: coarse + source side set: ssx- +solver: + type: Hessian minimizer + step: full Newton + minimum iterations: 1 + maximum iterations: 16 + relative tolerance: 1.0e-10 + absolute tolerance: 1.0e-06 \ No newline at end of file diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-2.g b/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-2.g new file mode 100644 index 0000000..2a4d7b4 Binary files /dev/null and b/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-2.g differ diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-2.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-2.yaml new file mode 100644 index 0000000..568a177 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-test3-2.yaml @@ -0,0 +1,45 @@ +type: single +input mesh file: cube-test3-2.g +output mesh file: cube-test3-2.e +model: + type: solid mechanics + material: + blocks: + coarse: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: Newmark + β: 0.25 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "1.0e-04 * 0.7071067811865476" + - node set: nsall + component: y + function: "1.0e-04 * 0.7071067811865475" + velocity: + - node set: nsall + component: x + function: "-100.0 * 0.7071067811865476" + - node set: nsall + component: y + function: "-100.0 * 0.7071067811865475" +boundary conditions: + Schwarz contact: + - side set: ssx- + source: "cube-test3-1.yaml" + source block: fine + source side set: ssx+ +solver: + type: Hessian minimizer + step: full Newton + minimum iterations: 1 + maximum iterations: 16 + relative tolerance: 1.0e-10 + absolute tolerance: 1.0e-06 diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-1.g b/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-1.g new file mode 100644 index 0000000..49d7451 Binary files /dev/null and b/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-1.g differ diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-1.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-1.yaml new file mode 100644 index 0000000..95638da --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-1.yaml @@ -0,0 +1,45 @@ +type: single +input mesh file: cube-test4-1.g +output mesh file: cube-test4-1.e +model: + type: solid mechanics + material: + blocks: + fine: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: Newmark + β: 0.25 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "-1.0e-04 * 6.123233995736766e-17" + - node set: nsall + component: y + function: "-1.0e-04 * 1.0" + velocity: + - node set: nsall + component: x + function: "100.0 * 6.123233995736766e-17" + - node set: nsall + component: y + function: "100.0 * 1.0" +boundary conditions: + Schwarz contact: + - side set: ssx+ + source: "cube-test4-2.yaml" + source block: coarse + source side set: ssx- +solver: + type: Hessian minimizer + step: full Newton + minimum iterations: 1 + maximum iterations: 16 + relative tolerance: 1.0e-10 + absolute tolerance: 1.0e-06 \ No newline at end of file diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-2.g b/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-2.g new file mode 100644 index 0000000..ad0ea1d Binary files /dev/null and b/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-2.g differ diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-2.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-2.yaml new file mode 100644 index 0000000..a4d4628 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cube-test4-2.yaml @@ -0,0 +1,45 @@ +type: single +input mesh file: cube-test4-2.g +output mesh file: cube-test4-2.e +model: + type: solid mechanics + material: + blocks: + coarse: elastic + elastic: + model: linear elastic + elastic modulus: 1.0e+09 + Poisson's ratio: 0.25 + density: 1000.0 +time integrator: + type: Newmark + β: 0.25 + γ: 0.5 +initial conditions: + displacement: + - node set: nsall + component: x + function: "1.0e-04 * 6.123233995736766e-17" + - node set: nsall + component: y + function: "1.0e-04 * 1.0" + velocity: + - node set: nsall + component: x + function: "-100.0 * 6.123233995736766e-17" + - node set: nsall + component: y + function: "-100.0 * 1.0" +boundary conditions: + Schwarz contact: + - side set: ssx- + source: "cube-test4-1.yaml" + source block: fine + source side set: ssx+ +solver: + type: Hessian minimizer + step: full Newton + minimum iterations: 1 + maximum iterations: 16 + relative tolerance: 1.0e-10 + absolute tolerance: 1.0e-06 diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cubes-test1.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cubes-test1.yaml new file mode 100644 index 0000000..9d378a0 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cubes-test1.yaml @@ -0,0 +1,14 @@ +type: multi +domains: ["cube-test1-1.yaml", "cube-test1-2.yaml"] +Exodus output interval: 1 +CSV output interval: 0 +initial time: -1.e-4 +time step: 1.e-4 +final time: 3.0 +same time step for domains: true +relaxation parameter: 1.0 +naive stabilized: false +minimum iterations: 1 +maximum iterations: 16 +relative tolerance: 1.0e-12 +absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cubes-test2.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cubes-test2.yaml new file mode 100644 index 0000000..229d7fc --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cubes-test2.yaml @@ -0,0 +1,14 @@ +type: multi +domains: ["cube-test2-1.yaml", "cube-test2-2.yaml"] +Exodus output interval: 1 +CSV output interval: 0 +initial time: -1.e-4 +time step: 1.e-4 +final time: 3.0 +same time step for domains: true +relaxation parameter: 1.0 +naive stabilized: false +minimum iterations: 1 +maximum iterations: 16 +relative tolerance: 1.0e-12 +absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cubes-test3.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cubes-test3.yaml new file mode 100644 index 0000000..de33556 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cubes-test3.yaml @@ -0,0 +1,14 @@ +type: multi +domains: ["cube-test3-1.yaml", "cube-test3-2.yaml"] +Exodus output interval: 1 +CSV output interval: 0 +initial time: -1.e-4 +time step: 1.e-4 +final time: 3.0 +same time step for domains: true +relaxation parameter: 1.0 +naive stabilized: false +minimum iterations: 1 +maximum iterations: 16 +relative tolerance: 1.0e-12 +absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cubes-test4.yaml b/examples/contact/implicit-dynamic/inclined-cubes/cubes-test4.yaml new file mode 100644 index 0000000..e4b5250 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cubes-test4.yaml @@ -0,0 +1,14 @@ +type: multi +domains: ["cube-test4-1.yaml", "cube-test4-2.yaml"] +Exodus output interval: 1 +CSV output interval: 0 +initial time: -1.e-4 +time step: 1.e-4 +final time: 3.0 +same time step for domains: true +relaxation parameter: 1.0 +naive stabilized: false +minimum iterations: 1 +maximum iterations: 16 +relative tolerance: 1.0e-12 +absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/implicit-dynamic/inclined-cubes/cubes.jou b/examples/contact/implicit-dynamic/inclined-cubes/cubes.jou new file mode 100644 index 0000000..3e6ab63 --- /dev/null +++ b/examples/contact/implicit-dynamic/inclined-cubes/cubes.jou @@ -0,0 +1,141 @@ +${side = 1.0} +${length = 1.0} +${separation = 0.0} +${nel_fine = 3} +${nel_coarse = 2} +${h_fine = length / nel_fine} +${h_coarse = length / nel_coarse} + +${area = side * side} +${offset = (length + separation) / 2.0} + +create brick x {length} y {side} z {side} +move volume 1 x {-offset} include_merged +volume 1 scheme tetmesh +volume 1 size {h_fine} +mesh volume 1 +block 1 volume 1 +block 1 element type tetra4 +block 1 name "fine" +nodeset 1 surface 4 +nodeset 1 name "nsx-" +nodeset 2 surface 6 +nodeset 2 name "nsx+" +nodeset 3 surface 3 +nodeset 3 name "nsy-" +nodeset 4 surface 5 +nodeset 4 name "nsy+" +nodeset 5 surface 2 +nodeset 5 name "nsz-" +nodeset 6 surface 1 +nodeset 6 name "nsz+" +nodeset 7 volume all +nodeset 7 name "nsall" +sideset 1 surface 4 +sideset 1 name "ssx-" +sideset 2 surface 6 +sideset 2 name "ssx+" +sideset 3 surface 3 +sideset 3 name "ssy-" +sideset 4 surface 5 +sideset 4 name "ssy+" +sideset 5 surface 2 +sideset 5 name "ssz-" +sideset 6 surface 1 +sideset 6 name "ssz+" +set large exodus file off +export mesh "cube-test1-1.g" overwrite +move volume 1 x {offset} include_merged + +${rot_angle = 22.5} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.9238795325112867} +${sinangle = 0.3826834323650898} +move volume 1 x {-offset*cosangle} y {-offset*sinangle} include_merged +export mesh "cube-test2-1.g" overwrite +move volume 1 x {offset*cosangle} y {offset*sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +${rot_angle = 45} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.7071067811865476} +${sinangle = 0.7071067811865476} +move volume 1 x {-offset*cosangle} y {-offset*sinangle} include_merged +export mesh "cube-test3-1.g" overwrite +move volume 1 x {offset*cosangle} y {offset*sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +${rot_angle = 90} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.0} +${sinangle = 1.0} +move volume 1 x {-offset*cosangle} y {-offset*sinangle} include_merged +export mesh "cube-test4-1.g" overwrite +move volume 1 x {offset*cosangle} y {offset*sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +delete mesh + +move volume 1 x {offset} include_merged +volume 1 scheme map +volume 1 size {h_coarse} +mesh volume 1 +block 1 volume 1 +block 1 element type hex8 +block 1 name "coarse" +nodeset 1 surface 4 +nodeset 1 name "nsx-" +nodeset 2 surface 6 +nodeset 2 name "nsx+" +nodeset 3 surface 3 +nodeset 3 name "nsy-" +nodeset 4 surface 5 +nodeset 4 name "nsy+" +nodeset 5 surface 2 +nodeset 5 name "nsz-" +nodeset 6 surface 1 +nodeset 6 name "nsz+" +nodeset 7 volume all +nodeset 7 name "nsall" +sideset 1 surface 4 +sideset 1 name "ssx-" +sideset 2 surface 6 +sideset 2 name "ssx+" +sideset 3 surface 3 +sideset 3 name "ssy-" +sideset 4 surface 5 +sideset 4 name "ssy+" +sideset 5 surface 2 +sideset 5 name "ssz-" +sideset 6 surface 1 +sideset 6 name "ssz+" +set large exodus file off +export mesh "cube-test1-2.g" overwrite +move volume 1 x {-offset} include_merged + +${rot_angle = 22.5} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.9238795325112867} +${sinangle = 0.3826834323650898} +move volume 1 x {offset * cosangle} y {offset * sinangle} include_merged +export mesh "cube-test2-2.g" overwrite +move volume 1 x {-offset * cosangle} y {-offset * sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +${rot_angle = 45} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.7071067811865476} +${sinangle = 0.7071067811865476} +move volume 1 x {offset * cosangle} y {offset * sinangle} include_merged +export mesh "cube-test3-2.g" overwrite +move volume 1 x {-offset * cosangle} y {-offset * sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} + +${rot_angle = 90} +rotate volume 1 about z angle {rot_angle} +${cosangle = 0.0} +${sinangle = 1.0} +move volume 1 x {offset * cosangle} y {offset * sinangle} include_merged +export mesh "cube-test4-2.g" overwrite +move volume 1 x {-offset * cosangle} y {-offset * sinangle} include_merged +rotate volume 1 about z angle -{rot_angle} \ No newline at end of file diff --git a/examples/contact/static/cubes_30_deg/cube-2.g b/examples/contact/static/cubes_30_deg/cube-2.g deleted file mode 100644 index d3fc626..0000000 Binary files a/examples/contact/static/cubes_30_deg/cube-2.g and /dev/null differ diff --git a/examples/contact/static/cubes_30_deg/cubes.jou b/examples/contact/static/cubes_30_deg/cubes.jou deleted file mode 100644 index f02604e..0000000 --- a/examples/contact/static/cubes_30_deg/cubes.jou +++ /dev/null @@ -1,85 +0,0 @@ -${side = 1.0} -${length = 1.0} -${separation = 0.0} -${nel_fine = 2} -${nel_coarse = 1} -${h_fine = length / nel_fine} -${h_coarse = length / nel_coarse} - -${area = side * side} -${offset = (length + separation) / 2.0} - -create brick x {length} y {side} z {side} -rotate volume 1 about z angle 30 -move volume 1 x {-offset*0.8660254037844387} y {-offset*0.5} include_merged - -#volume 1 scheme tetmesh -volume 1 size {h_fine} -mesh volume 1 -block 1 volume 1 -#block 1 element type tetra4 -block 1 name "fine" -nodeset 1 surface 4 -nodeset 1 name "nsx-" -nodeset 2 surface 6 -nodeset 2 name "nsx+" -nodeset 3 surface 3 -nodeset 3 name "nsy-" -nodeset 4 surface 5 -nodeset 4 name "nsy+" -nodeset 5 surface 2 -nodeset 5 name "nsz-" -nodeset 6 surface 1 -nodeset 6 name "nsz+" -nodeset 7 volume all -nodeset 7 name "nsall" -sideset 1 surface 4 -sideset 1 name "ssx-" -sideset 2 surface 6 -sideset 2 name "ssx+" -sideset 3 surface 3 -sideset 3 name "ssy-" -sideset 4 surface 5 -sideset 4 name "ssy+" -sideset 5 surface 2 -sideset 5 name "ssz-" -sideset 6 surface 1 -sideset 6 name "ssz+" -set large exodus file off -export mesh "cube-1.g" overwrite -delete mesh -move volume 1 x {2 * offset*0.8660254037844387} y {2 * offset * 0.5} include_merged -#volume 1 scheme tetmesh -volume 1 size {h_coarse} -mesh volume 1 -block 1 volume 1 -#block 1 element type tetra4 -block 1 name "coarse" -nodeset 1 surface 4 -nodeset 1 name "nsx-" -nodeset 2 surface 6 -nodeset 2 name "nsx+" -nodeset 3 surface 3 -nodeset 3 name "nsy-" -nodeset 4 surface 5 -nodeset 4 name "nsy+" -nodeset 5 surface 2 -nodeset 5 name "nsz-" -nodeset 6 surface 1 -nodeset 6 name "nsz+" -nodeset 7 volume all -nodeset 7 name "nsall" -sideset 1 surface 4 -sideset 1 name "ssx-" -sideset 2 surface 6 -sideset 2 name "ssx+" -sideset 3 surface 3 -sideset 3 name "ssy-" -sideset 4 surface 5 -sideset 4 name "ssy+" -sideset 5 surface 2 -sideset 5 name "ssz-" -sideset 6 surface 1 -sideset 6 name "ssz+" -set large exodus file off -export mesh "cube-2.g" overwrite diff --git a/examples/contact/static/cubes_30_deg/cubes.yaml b/examples/contact/static/cubes_30_deg/cubes.yaml deleted file mode 100644 index 711bba3..0000000 --- a/examples/contact/static/cubes_30_deg/cubes.yaml +++ /dev/null @@ -1,11 +0,0 @@ -type: multi -domains: ["cube-1.yaml", "cube-2.yaml"] -initial time: -4.0 -final time: 4.0 -time step: 1.0 -same time step for domains: false -relaxation parameter: 0.5 -minimum iterations: 1 -maximum iterations: 16 -relative tolerance: 1.0e-12 -absolute tolerance: 1.0e-08 \ No newline at end of file diff --git a/examples/contact/static/inclined_cubes/cube-test1-1.g b/examples/contact/static/inclined-cubes/cube-test1-1.g similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test1-1.g rename to examples/contact/static/inclined-cubes/cube-test1-1.g diff --git a/examples/contact/static/inclined_cubes/cube-test1-1.yaml b/examples/contact/static/inclined-cubes/cube-test1-1.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test1-1.yaml rename to examples/contact/static/inclined-cubes/cube-test1-1.yaml diff --git a/examples/contact/static/inclined_cubes/cube-test1-2.g b/examples/contact/static/inclined-cubes/cube-test1-2.g similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test1-2.g rename to examples/contact/static/inclined-cubes/cube-test1-2.g diff --git a/examples/contact/static/inclined_cubes/cube-test1-2.yaml b/examples/contact/static/inclined-cubes/cube-test1-2.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test1-2.yaml rename to examples/contact/static/inclined-cubes/cube-test1-2.yaml diff --git a/examples/contact/static/inclined_cubes/cube-test2-1.g b/examples/contact/static/inclined-cubes/cube-test2-1.g similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test2-1.g rename to examples/contact/static/inclined-cubes/cube-test2-1.g diff --git a/examples/contact/static/inclined_cubes/cube-test2-1.yaml b/examples/contact/static/inclined-cubes/cube-test2-1.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test2-1.yaml rename to examples/contact/static/inclined-cubes/cube-test2-1.yaml diff --git a/examples/contact/static/inclined_cubes/cube-test2-2.g b/examples/contact/static/inclined-cubes/cube-test2-2.g similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test2-2.g rename to examples/contact/static/inclined-cubes/cube-test2-2.g diff --git a/examples/contact/static/inclined_cubes/cube-test2-2.yaml b/examples/contact/static/inclined-cubes/cube-test2-2.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test2-2.yaml rename to examples/contact/static/inclined-cubes/cube-test2-2.yaml diff --git a/examples/contact/static/inclined_cubes/cube-test3-1.g b/examples/contact/static/inclined-cubes/cube-test3-1.g similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test3-1.g rename to examples/contact/static/inclined-cubes/cube-test3-1.g diff --git a/examples/contact/static/inclined_cubes/cube-test3-1.yaml b/examples/contact/static/inclined-cubes/cube-test3-1.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test3-1.yaml rename to examples/contact/static/inclined-cubes/cube-test3-1.yaml diff --git a/examples/contact/static/inclined_cubes/cube-test3-2.g b/examples/contact/static/inclined-cubes/cube-test3-2.g similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test3-2.g rename to examples/contact/static/inclined-cubes/cube-test3-2.g diff --git a/examples/contact/static/inclined_cubes/cube-test3-2.yaml b/examples/contact/static/inclined-cubes/cube-test3-2.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test3-2.yaml rename to examples/contact/static/inclined-cubes/cube-test3-2.yaml diff --git a/examples/contact/static/inclined_cubes/cube-test4-1.g b/examples/contact/static/inclined-cubes/cube-test4-1.g similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test4-1.g rename to examples/contact/static/inclined-cubes/cube-test4-1.g diff --git a/examples/contact/static/inclined_cubes/cube-test4-1.yaml b/examples/contact/static/inclined-cubes/cube-test4-1.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test4-1.yaml rename to examples/contact/static/inclined-cubes/cube-test4-1.yaml diff --git a/examples/contact/static/inclined_cubes/cube-test4-2.g b/examples/contact/static/inclined-cubes/cube-test4-2.g similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test4-2.g rename to examples/contact/static/inclined-cubes/cube-test4-2.g diff --git a/examples/contact/static/inclined_cubes/cube-test4-2.yaml b/examples/contact/static/inclined-cubes/cube-test4-2.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cube-test4-2.yaml rename to examples/contact/static/inclined-cubes/cube-test4-2.yaml diff --git a/examples/contact/static/inclined_cubes/cubes-test1.yaml b/examples/contact/static/inclined-cubes/cubes-test1.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cubes-test1.yaml rename to examples/contact/static/inclined-cubes/cubes-test1.yaml diff --git a/examples/contact/static/inclined_cubes/cubes-test2.yaml b/examples/contact/static/inclined-cubes/cubes-test2.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cubes-test2.yaml rename to examples/contact/static/inclined-cubes/cubes-test2.yaml diff --git a/examples/contact/static/inclined_cubes/cubes-test3.yaml b/examples/contact/static/inclined-cubes/cubes-test3.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cubes-test3.yaml rename to examples/contact/static/inclined-cubes/cubes-test3.yaml diff --git a/examples/contact/static/inclined_cubes/cubes-test4.yaml b/examples/contact/static/inclined-cubes/cubes-test4.yaml similarity index 100% rename from examples/contact/static/inclined_cubes/cubes-test4.yaml rename to examples/contact/static/inclined-cubes/cubes-test4.yaml diff --git a/examples/contact/static/inclined_cubes/cubes.jou b/examples/contact/static/inclined-cubes/cubes.jou similarity index 100% rename from examples/contact/static/inclined_cubes/cubes.jou rename to examples/contact/static/inclined-cubes/cubes.jou diff --git a/src/schwarz.jl b/src/schwarz.jl index 3a593a3..bfd2240 100644 --- a/src/schwarz.jl +++ b/src/schwarz.jl @@ -141,10 +141,19 @@ function save_stop_solutions( sims::Vector{SingleDomainSimulation}, ) for i ∈ 1:schwarz_controller.num_domains - schwarz_controller.stop_disp[i] = deepcopy(sims[i].integrator.displacement) - schwarz_controller.stop_velo[i] = deepcopy(sims[i].integrator.velocity) - schwarz_controller.stop_acce[i] = deepcopy(sims[i].integrator.acceleration) + # If this model has inclined support on, we need to rotate the integrator values + if sims[i].model.inclined_support == true + global_transform_T = sims[i].model.global_transform' + schwarz_controller.stop_disp[i] = global_transform_T * sims[i].integrator.displacement + schwarz_controller.stop_velo[i] = global_transform_T * sims[i].integrator.velocity + schwarz_controller.stop_acce[i] = global_transform_T * sims[i].integrator.acceleration + else + schwarz_controller.stop_disp[i] = deepcopy(sims[i].integrator.displacement) + schwarz_controller.stop_velo[i] = deepcopy(sims[i].integrator.velocity) + schwarz_controller.stop_acce[i] = deepcopy(sims[i].integrator.acceleration) + end schwarz_controller.stop_∂Ω_f[i] = deepcopy(sims[i].model.internal_force) + end end @@ -160,6 +169,14 @@ function restore_stop_solutions( sims[i].integrator.displacement = deepcopy(schwarz_controller.stop_disp[i]) sims[i].integrator.velocity = deepcopy(schwarz_controller.stop_velo[i]) sims[i].integrator.acceleration = deepcopy(schwarz_controller.stop_acce[i]) + # If this model has inclined support on, we need to rotate the integrator values + if sims[i].model.inclined_support == true + global_transform = sims[i].model.global_transform + sims[i].integrator.displacement = global_transform * sims[i].integrator.displacement + sims[i].integrator.velocity = global_transform * sims[i].integrator.velocity + sims[i].integrator.acceleration = global_transform * sims[i].integrator.acceleration + end + sims[i].model.internal_force = deepcopy(schwarz_controller.stop_∂Ω_f[i]) copy_solution_source_targets(sims[i].integrator, sims[i].solver, sims[i].model) end @@ -174,6 +191,9 @@ function save_schwarz_solutions( sims::Vector{SingleDomainSimulation}, ) for i ∈ 1:schwarz_controller.num_domains + # Note: Integrator values are not rotated due to inclined support as the + # schwarz variables are only used for Schwarz convergence which are compared + # to simulation integrator values. schwarz_controller.schwarz_disp[i] = deepcopy(sims[i].integrator.displacement) schwarz_controller.schwarz_velo[i] = deepcopy(sims[i].integrator.velocity) schwarz_controller.schwarz_acce[i] = deepcopy(sims[i].integrator.acceleration) diff --git a/test/runtests.jl b/test/runtests.jl index a9bdf74..c87bd27 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -24,7 +24,8 @@ include("tet10-static-solid-cube.jl") include("schwarz-overlap-static-cuboid-hex8.jl") include("schwarz-nonoverlap-static-cuboid-hex8.jl") include("transfer-operators.jl") -include("schwarz-contact-static-cubes-hex8.jl") +include("schwarz-contact-static-cubes.jl") +include("schwarz-contact-dynamic-cubes.jl") include("solid-cube-inclined-support.jl") include("opinf-schwarz-overlap-cuboid-hex8.jl") diff --git a/test/schwarz-contact-dynamic-bars-hex8.jl b/test/schwarz-contact-dynamic-bars-hex8.jl index 0330a5a..6385130 100644 --- a/test/schwarz-contact-dynamic-bars-hex8.jl +++ b/test/schwarz-contact-dynamic-bars-hex8.jl @@ -6,11 +6,11 @@ using YAML @testset "schwarz-contact-dynamic-bars-hex8" begin - cp("../examples/contact/dynamic/2_bars/bars.yaml", "bars.yaml", force=true) - cp("../examples/contact/dynamic/2_bars/bar-1.yaml", "bar-1.yaml", force=true) - cp("../examples/contact/dynamic/2_bars/bar-2.yaml", "bar-2.yaml", force=true) - cp("../examples/contact/dynamic/2_bars/bar-1.g", "bar-1.g", force=true) - cp("../examples/contact/dynamic/2_bars/bar-2.g", "bar-2.g", force=true) + cp("../examples/contact/implicit-dynamic/2_bars/bars.yaml", "bars.yaml", force=true) + cp("../examples/contact/implicit-dynamic/2_bars/bar-1.yaml", "bar-1.yaml", force=true) + cp("../examples/contact/implicit-dynamic/2_bars/bar-2.yaml", "bar-2.yaml", force=true) + cp("../examples/contact/implicit-dynamic/2_bars/bar-1.g", "bar-1.g", force=true) + cp("../examples/contact/implicit-dynamic/2_bars/bar-2.g", "bar-2.g", force=true) input_file = "bars.yaml" params = YAML.load_file(input_file; dicttype=Dict{String,Any}) params["initial time"] = -1.0e-06 diff --git a/test/schwarz-contact-dynamic-cubes.jl b/test/schwarz-contact-dynamic-cubes.jl new file mode 100644 index 0000000..66d70b6 --- /dev/null +++ b/test/schwarz-contact-dynamic-cubes.jl @@ -0,0 +1,119 @@ +# Norma.jl 1.0: Copyright 2025 National Technology & Engineering Solutions of +# Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, +# the U.S. Government retains certain rights in this software. This software +# is released under the BSD license detailed in the file license.txt in the +# top-level Norma.jl directory. + +using YAML + +@testset "schwarz-contact-inclined-explicit-cubes" begin + + model_fine = nothing + model_coarse = nothing + + angles = [ 0.0, 22.5, 45, 90 ] + for (i, angle_deg) in enumerate(angles) + cp("../examples/contact/explicit-dynamic/inclined-cubes/cubes-test$i.yaml", "cubes-test$i.yaml", force=true) + cp("../examples/contact/explicit-dynamic/inclined-cubes/cube-test$i-1.yaml", "cube-test$i-1.yaml", force=true) + cp("../examples/contact/explicit-dynamic/inclined-cubes/cube-test$i-2.yaml", "cube-test$i-2.yaml", force=true) + cp("../examples/contact/explicit-dynamic/inclined-cubes/cube-test$i-1.g", "cube-test$i-1.g", force=true) + cp("../examples/contact/explicit-dynamic/inclined-cubes/cube-test$i-2.g", "cube-test$i-2.g", force=true) + input_file = "cubes-test$i.yaml" + params = YAML.load_file(input_file; dicttype=Dict{String,Any}) + params["initial time"] = -1.0e-06 + params["final time"] = 1.0e-5 + sim = Norma.run(params, input_file) + subsim_temp = sim.subsims + model_fine_temp = subsim_temp[1].model.current + model_coarse_temp = subsim_temp[2].model.current + + rm("cubes-test$i.yaml") + rm("cube-test$i-1.yaml") + rm("cube-test$i-2.yaml") + rm("cube-test$i-1.g") + rm("cube-test$i-2.g") + rm("cube-test$i-1.e") + rm("cube-test$i-2.e") + + if ( i == 1 ) + model_fine = model_fine_temp + model_coarse = model_coarse_temp + else + # Rotate these displacements about z + angle = angle_deg * π / 180 + c = cos(angle) + s = sin(angle) + local_rotation_matrix = [ c s 0; -s c 0 ; 0 0 1] + model_fine_rotated = zeros((3,68)) + model_coarse_rotated = zeros((3,27)) + for i in range(1,68) + base = (i-1)*(3) + 1 + model_fine_rotated[:, i] = local_rotation_matrix * model_fine_temp[:, i] + end + for i in range(1,27) + base = (i-1)*(3) + 1 + model_coarse_rotated[:, i] = local_rotation_matrix * model_coarse_temp[:, i] + end + + @test model_fine_rotated ≈ model_fine rtol=1e-5 + @test model_coarse_rotated ≈ model_coarse rtol=1e-5 + end + end + +end + +# @testset "schwarz-contact-inclined-implicit-cubes" begin + +# model_fine = nothing +# model_coarse = nothing + +# angles = [ 0.0, 22.5, 45, 90 ] +# for (i, angle_deg) in enumerate(angles) +# cp("../examples/contact/implicit-dynamic/inclined-cubes/cubes-test$i.yaml", "cubes-test$i.yaml", force=true) +# cp("../examples/contact/implicit-dynamic/inclined-cubes/cube-test$i-1.yaml", "cube-test$i-1.yaml", force=true) +# cp("../examples/contact/implicit-dynamic/inclined-cubes/cube-test$i-2.yaml", "cube-test$i-2.yaml", force=true) +# cp("../examples/contact/implicit-dynamic/inclined-cubes/cube-test$i-1.g", "cube-test$i-1.g", force=true) +# cp("../examples/contact/implicit-dynamic/inclined-cubes/cube-test$i-2.g", "cube-test$i-2.g", force=true) +# input_file = "cubes-test$i.yaml" +# params = YAML.load_file(input_file; dicttype=Dict{String,Any}) +# params["initial time"] = -1.0e-06 +# params["final time"] = 1.0e-3 +# sim = Norma.run(params, input_file) +# subsim_temp = sim.subsims +# model_fine_temp = subsim_temp[1].model.current +# model_coarse_temp = subsim_temp[2].model.current + +# rm("cubes-test$i.yaml") +# rm("cube-test$i-1.yaml") +# rm("cube-test$i-2.yaml") +# rm("cube-test$i-1.g") +# rm("cube-test$i-2.g") +# rm("cube-test$i-1.e") +# rm("cube-test$i-2.e") + +# if ( i == 1 ) +# model_fine = model_fine_temp +# model_coarse = model_coarse_temp +# else +# # Rotate these displacements about z +# angle = angle_deg * π / 180 +# c = cos(angle) +# s = sin(angle) +# local_rotation_matrix = [ c s 0; -s c 0 ; 0 0 1] +# model_fine_rotated = zeros((3,68)) +# model_coarse_rotated = zeros((3,27)) +# for i in range(1,68) +# base = (i-1)*(3) + 1 +# model_fine_rotated[:, i] = local_rotation_matrix * model_fine_temp[:, i] +# end +# for i in range(1,27) +# base = (i-1)*(3) + 1 +# model_coarse_rotated[:, i] = local_rotation_matrix * model_coarse_temp[:, i] +# end + +# @test model_fine_rotated ≈ model_fine rtol=2e-4 +# @test model_coarse_rotated ≈ model_coarse rtol=2e-4 +# end +# end + +# end \ No newline at end of file diff --git a/test/schwarz-contact-static-cubes-hex8.jl b/test/schwarz-contact-static-cubes.jl similarity index 92% rename from test/schwarz-contact-static-cubes-hex8.jl rename to test/schwarz-contact-static-cubes.jl index 5e33838..87e1efd 100644 --- a/test/schwarz-contact-static-cubes-hex8.jl +++ b/test/schwarz-contact-static-cubes.jl @@ -56,18 +56,18 @@ using YAML @test avg_stress_coarse[6] ≈ 0.0 atol = 1.0e-04 end -@testset "schwarz-contact-inclined-static-cubes-hex8" begin +@testset "schwarz-contact-inclined-static-cubes" begin model_fine = nothing model_coarse = nothing angles = [ 0.0, 22.5, 45, 90 ] for (i, angle_deg) in enumerate(angles) - cp("../examples/contact/static/inclined_cubes/cubes-test$i.yaml", "cubes-test$i.yaml", force=true) - cp("../examples/contact/static/inclined_cubes/cube-test$i-1.yaml", "cube-test$i-1.yaml", force=true) - cp("../examples/contact/static/inclined_cubes/cube-test$i-2.yaml", "cube-test$i-2.yaml", force=true) - cp("../examples/contact/static/inclined_cubes/cube-test$i-1.g", "cube-test$i-1.g", force=true) - cp("../examples/contact/static/inclined_cubes/cube-test$i-2.g", "cube-test$i-2.g", force=true) + cp("../examples/contact/static/inclined-cubes/cubes-test$i.yaml", "cubes-test$i.yaml", force=true) + cp("../examples/contact/static/inclined-cubes/cube-test$i-1.yaml", "cube-test$i-1.yaml", force=true) + cp("../examples/contact/static/inclined-cubes/cube-test$i-2.yaml", "cube-test$i-2.yaml", force=true) + cp("../examples/contact/static/inclined-cubes/cube-test$i-1.g", "cube-test$i-1.g", force=true) + cp("../examples/contact/static/inclined-cubes/cube-test$i-2.g", "cube-test$i-2.g", force=true) input_file = "cubes-test$i.yaml" params = YAML.load_file(input_file; dicttype=Dict{String,Any}) params["initial time"] = -2.0