Skip to content

Commit

Permalink
Checking in some test cases to help debug nonoverlapping Schwarz:
Browse files Browse the repository at this point in the history
a bar pulled from 1 or both directions decomposed into 2 or 3
subdomains, and a cylinder test case.

3 subdomain doesn't work with non-overlapping Schwarz.  Need to debug.

Cylinder works with neohookean material model and realistic material
parameters, but not linear elastic, curiously.
  • Loading branch information
ikalash committed Feb 1, 2025
1 parent 781abaf commit 0f50291
Show file tree
Hide file tree
Showing 30 changed files with 1,388 additions and 0 deletions.
38 changes: 38 additions & 0 deletions examples/debug-cases/2-cuboid-symmetry-bc/nonoverlap/cuboid-1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
type: single
input mesh file: cuboid-1.g
output mesh file: cuboid-1.e
model:
type: solid mechanics
material:
blocks:
fine: hyperelastic
hyperelastic:
model: linear elastic
elastic modulus: 1.0e+09
Poisson's ratio: 0.25
density: 1000.0
time integrator:
type: quasi static
boundary conditions:
Dirichlet:
- node set: nsx-
component: x
function: "0.0"
- node set: nsy-
component: y
function: "0.0"
- node set: nsz-
component: z
function: "-1.0 * t"
Schwarz nonoverlap:
- side set: ssz+
source: cuboid-2.yaml
source block: coarse
source side set: ssz-
solver:
type: Hessian minimizer
step: full Newton
minimum iterations: 1
maximum iterations: 96
relative tolerance: 1.0e-10
absolute tolerance: 1.0e-06
38 changes: 38 additions & 0 deletions examples/debug-cases/2-cuboid-symmetry-bc/nonoverlap/cuboid-2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
type: single
input mesh file: cuboid-2.g
output mesh file: cuboid-2.e
model:
type: solid mechanics
material:
blocks:
coarse: hyperelastic
hyperelastic:
model: linear elastic
elastic modulus: 1.0e+09
Poisson's ratio: 0.25
density: 1000.0
time integrator:
type: quasi static
boundary conditions:
Dirichlet:
- node set: nsx-
component: x
function: "0.0"
- node set: nsy-
component: y
function: "0.0"
- node set: nsz+
component: z
function: "1.0 * t"
Schwarz nonoverlap:
- side set: ssz-
source: cuboid-1.yaml
source block: fine
source side set: ssz+
solver:
type: Hessian minimizer
step: full Newton
minimum iterations: 1
maximum iterations: 96
relative tolerance: 1.0e-10
absolute tolerance: 1.0e-06
116 changes: 116 additions & 0 deletions examples/debug-cases/2-cuboid-symmetry-bc/nonoverlap/cuboids.jou
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
${side = 1.0}
${height = 2.0}
${overlap_vol_frac = 0.0}
${h_fine = 0.5}
${h_coarse = 0.5}

${area = side * side}
${volume = area * height}
${overlap_volume = overlap_vol_frac * volume}
${overlap_length = overlap_volume / area}
${domain_height = (height + overlap_length) / 2.0}
${offset = abs(domain_height - overlap_length) / 2.0}

create brick x {side} y {side} z {domain_height}
move volume 1 z {-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+"
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 "cuboid-1.g" overwrite
delete mesh
move volume 1 z {2 * offset} 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+"
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 "cuboid-2.g" overwrite
delete mesh
move volume 1 z {2 * offset} 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+"
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 "cuboid-3.g" overwrite

13 changes: 13 additions & 0 deletions examples/debug-cases/2-cuboid-symmetry-bc/nonoverlap/cuboids.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
type: multi
domains: ["cuboid-1.yaml", "cuboid-2.yaml"]
Exodus output interval: 1
CSV output interval: 0
initial time: 0.0
final time: 1.0
time step: 0.1
same time step for domains: true
minimum iterations: 1
maximum iterations: 64
relative tolerance: 1.0e-13
absolute tolerance: 1.0e-09
relaxation parameter: 0.473
38 changes: 38 additions & 0 deletions examples/debug-cases/2-cuboid-symmetry-bc/overlap/cuboid-1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
type: single
input mesh file: cuboid-1.g
output mesh file: cuboid-1.e
model:
type: solid mechanics
material:
blocks:
fine: hyperelastic
hyperelastic:
model: linear elastic
elastic modulus: 1.0e+09
Poisson's ratio: 0.25
density: 1000.0
time integrator:
type: quasi static
boundary conditions:
Dirichlet:
- node set: nsx-
component: x
function: "0.0"
- node set: nsy-
component: y
function: "0.0"
- node set: nsz-
component: z
function: "-1.0 * t"
Schwarz overlap:
- side set: ssz+
source: cuboid-2.yaml
source block: coarse
source side set: ssz-
solver:
type: Hessian minimizer
step: full Newton
minimum iterations: 1
maximum iterations: 96
relative tolerance: 1.0e-10
absolute tolerance: 1.0e-06
38 changes: 38 additions & 0 deletions examples/debug-cases/2-cuboid-symmetry-bc/overlap/cuboid-2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
type: single
input mesh file: cuboid-2.g
output mesh file: cuboid-2.e
model:
type: solid mechanics
material:
blocks:
coarse: hyperelastic
hyperelastic:
model: linear elastic
elastic modulus: 1.0e+09
Poisson's ratio: 0.25
density: 1000.0
time integrator:
type: quasi static
boundary conditions:
Dirichlet:
- node set: nsx-
component: x
function: "0.0"
- node set: nsy-
component: y
function: "0.0"
- node set: nsz+
component: z
function: "1.0 * t"
Schwarz overlap:
- side set: ssz-
source: cuboid-1.yaml
source block: fine
source side set: ssz+
solver:
type: Hessian minimizer
step: full Newton
minimum iterations: 1
maximum iterations: 96
relative tolerance: 1.0e-10
absolute tolerance: 1.0e-06
Loading

0 comments on commit 0f50291

Please sign in to comment.