schema_version: 1
example: phast.examples.dynamic_sent_tension.run
problem:
  name: Dynamic SENT
  reference: Borden et al. (2012), CMAME
# Geometry: inline-primitive DSL. The B3 SENT plate is a 40 mm square
# with a 20 mm V-notch at mid-height. The checked-in mesh.geo/mesh.msh
# files provide the same public geometry recipe for direct Gmsh reruns.
geometry:
  units: mm
  primitives:
    plate: { type: rectangle, origin: [0, 0], size: [40.0, 40.0] }
    # Triangular wedge notch: tip at (a, H/2), mouth at left edge
    # spanning H/2 +- eps. eps = min(0.01*min(W,H), 0.01) = 0.01,
    # matching mesh_generator.rectangular_sent (notch_eps).
    notch:
      type: polygon
      vertices: [[0.0, 20.001], [20.0, 20.0], [0.0, 19.999]]
  domain:
    base: plate
    subtract: [notch]
  named_groups:
    left:   { region: { type: rectangle, origin: [-0.01,  0.0],   size: [0.02,   40.0] } }
    right:  { region: { type: rectangle, origin: [39.99,  0.0],   size: [0.02,   40.0] } }
    top:    { region: { type: rectangle, origin: [ 0.0,   39.99], size: [40.0,  0.02] } }
    bottom: { region: { type: rectangle, origin: [ 0.0,  -0.01],  size: [40.0,  0.02] } }
  mesh:
    element_size:
      default: 2.0       # h_coarse
      refined:
        # Distance+Threshold band around the notch walls (matches
        # Field[1]/Field[2] in legacy .geo: refinement of width 5*l0
        # around the notch curves at h_crack).
        - primitive: notch
          size: 0.25     # h_crack
          margin: 1.5
# Inline material — Borden (2012) soda-lime glass.
material:
  E: 32000.0            # 32 GPa
  nu: 0.20
  Gc: 3.0e-3            # 3 J/m^2
  l0: 0.5
  rho: 2.45e-9
  energy_split: spectral
  pf_model: AT2
  eta_residual: 1.0e-7
boundary_conditions:
- nodes: left
  type: fix
  component: 0
- nodes: right
  type: fix
  component: 0
- {nodes: top,    type: prescribe, component: 1, value:  0.002}
- {nodes: bottom, type: prescribe, component: 1, value: -0.002}
loading:
  protocol: simple
  t_total: 1.0e-04
  ramp_type: smooth_step
  t_ramp: 2.0e-05
solver:
  solver_type: explicit
  dt_safety: 0.8
output:
  trajectory: true
  trajectory_format: zarr
  h5_every: 20
  fast: true
  print_every: 100
