|
1 | 1 | #!/usr/bin/env python3 |
| 2 | +# 2D continuum-damage demonstration: solid disk in water hit by a planar pulse. |
| 3 | +# |
| 4 | +# A planar high-pressure strip in the water launches a pulse that diffracts around |
| 5 | +# and transmits through a damageable solid disk. Tension concentrations (poles of |
| 6 | +# the disk during passage, interior wave focusing afterwards) exceed tau_star and |
| 7 | +# accumulate damage; the surrounding water stays undamaged (damage is carried by |
| 8 | +# the solid partial mass, U_D = m_s D). |
| 9 | +# |
| 10 | +# Parameters are deliberately sub-critical: with the tangent model, stress is |
| 11 | +# retained as D grows, and driving D all the way to 1 under sustained tension |
| 12 | +# leaves a zero-shear-stiffness cell with residual stress (a documented model |
| 13 | +# limitation). tau_star and alpha_bar here keep max D around 0.2. |
2 | 14 | import json |
3 | 15 |
|
4 | 16 | # Configuring case dictionary |
|
9 | 21 | "run_time_info": "T", |
10 | 22 | # Computational Domain Parameters |
11 | 23 | "x_domain%beg": 0.0, |
12 | | - "x_domain%end": 0.001, |
| 24 | + "x_domain%end": 0.01, |
13 | 25 | "y_domain%beg": 0.0, |
14 | | - "y_domain%end": 0.0005, |
15 | | - "m": 50, |
16 | | - "n": 25, |
| 26 | + "y_domain%end": 0.01, |
| 27 | + "m": 199, |
| 28 | + "n": 199, |
17 | 29 | "p": 0, |
18 | | - "dt": 2e-12, |
| 30 | + "dt": 5.0e-9, |
19 | 31 | "t_step_start": 0, |
20 | | - "t_step_stop": 40000, |
21 | | - "t_step_save": 2000, |
| 32 | + "t_step_stop": 1200, |
| 33 | + "t_step_save": 100, |
22 | 34 | # Simulation Algorithm Parameters |
23 | | - "num_patches": 2, |
| 35 | + "num_patches": 3, |
24 | 36 | "model_eqns": "5eq", |
25 | 37 | "alt_soundspeed": "F", |
26 | 38 | "num_fluids": 2, |
|
29 | 41 | "time_stepper": "rk3", |
30 | 42 | "weno_order": 5, |
31 | 43 | "weno_eps": 1.0e-16, |
32 | | - "teno": "T", |
33 | | - "teno_CT": 1e-8, |
| 44 | + "weno_Re_flux": "F", |
| 45 | + "weno_avg": "F", |
| 46 | + "mapped_weno": "T", |
34 | 47 | "null_weights": "F", |
35 | 48 | "mp_weno": "F", |
36 | 49 | "riemann_solver": "hll", |
37 | 50 | "wave_speeds": "direct", |
38 | 51 | "avg_state": "arithmetic", |
39 | 52 | "bc_x%beg": -6, |
40 | 53 | "bc_x%end": -6, |
41 | | - "bc_y%beg": -2, |
| 54 | + "bc_y%beg": -6, |
42 | 55 | "bc_y%end": -6, |
43 | | - # Hypoelasticity |
| 56 | + # Hypoelasticity + continuum damage |
44 | 57 | "hypoelasticity": "T", |
45 | 58 | "fd_order": 4, |
46 | 59 | "cont_damage": "T", |
47 | | - "tau_star": 0.0, |
| 60 | + "tau_star": 2.0e7, |
48 | 61 | "cont_damage_s": 2.0, |
49 | | - "alpha_bar": 1e-4, |
| 62 | + "alpha_bar": 2.0e-5, |
50 | 63 | # Formatted Database Files Structure Parameters |
51 | 64 | "format": "silo", |
52 | 65 | "precision": "double", |
53 | 66 | "prim_vars_wrt": "T", |
54 | | - "parallel_io": "T", |
55 | | - # Patch 1 Liquid |
| 67 | + "parallel_io": "F", |
| 68 | + # Background water (ambient) |
56 | 69 | "patch_icpp(1)%geometry": 3, |
57 | | - "patch_icpp(1)%x_centroid": 0.0005, |
58 | | - "patch_icpp(1)%y_centroid": 0.00025, |
59 | | - "patch_icpp(1)%length_x": 0.001, |
60 | | - "patch_icpp(1)%length_y": 0.0005, |
| 70 | + "patch_icpp(1)%x_centroid": 0.005, |
| 71 | + "patch_icpp(1)%y_centroid": 0.005, |
| 72 | + "patch_icpp(1)%length_x": 0.01, |
| 73 | + "patch_icpp(1)%length_y": 0.01, |
61 | 74 | "patch_icpp(1)%vel(1)": 0.0, |
62 | 75 | "patch_icpp(1)%vel(2)": 0.0, |
63 | | - "patch_icpp(1)%pres": 1e05, |
64 | | - "patch_icpp(1)%alpha_rho(1)": 1100 * (1.0 - 1e-6), |
| 76 | + "patch_icpp(1)%pres": 1.0e5, |
| 77 | + "patch_icpp(1)%alpha_rho(1)": 1000.0 * (1.0 - 1e-6), |
65 | 78 | "patch_icpp(1)%alpha(1)": 1.0 - 1e-6, |
66 | | - "patch_icpp(1)%alpha_rho(2)": 1100 * 1e-6, |
| 79 | + "patch_icpp(1)%alpha_rho(2)": 1000.0 * 1e-6, |
67 | 80 | "patch_icpp(1)%alpha(2)": 1e-6, |
68 | | - # Patch 2 Solid |
| 81 | + "patch_icpp(1)%tau_e(1)": 0.0, |
| 82 | + "patch_icpp(1)%tau_e(2)": 0.0, |
| 83 | + "patch_icpp(1)%tau_e(3)": 0.0, |
| 84 | + # Driver strip (interior so the open boundaries never act as a reservoir) |
69 | 85 | "patch_icpp(2)%alter_patch(1)": "T", |
70 | 86 | "patch_icpp(2)%geometry": 3, |
71 | | - "patch_icpp(2)%x_centroid": 0.0005, |
72 | | - "patch_icpp(2)%y_centroid": 0.000125, |
| 87 | + "patch_icpp(2)%x_centroid": 0.00175, |
| 88 | + "patch_icpp(2)%y_centroid": 0.005, |
73 | 89 | "patch_icpp(2)%length_x": 0.0005, |
74 | | - "patch_icpp(2)%length_y": 0.00025, |
| 90 | + "patch_icpp(2)%length_y": 0.01, |
75 | 91 | "patch_icpp(2)%vel(1)": 0.0, |
76 | 92 | "patch_icpp(2)%vel(2)": 0.0, |
77 | | - "patch_icpp(2)%pres": 1e05, |
78 | | - "patch_icpp(2)%alpha_rho(1)": 1100 * 1e-6, |
79 | | - "patch_icpp(2)%alpha(1)": 1e-6, |
80 | | - "patch_icpp(2)%alpha_rho(2)": 1100 * (1.0 - 1e-6), |
81 | | - "patch_icpp(2)%alpha(2)": 1.0 - 1e-6, |
82 | | - # Acoustic source |
83 | | - "acoustic_source": "T", |
84 | | - "num_source": 1, |
85 | | - "acoustic(1)%support": 5, |
86 | | - "acoustic(1)%loc(1)": 0.00005, |
87 | | - "acoustic(1)%loc(2)": 0.0, |
88 | | - "acoustic(1)%pulse": 1, |
89 | | - "acoustic(1)%npulse": 999, |
90 | | - "acoustic(1)%mag": 100.0, |
91 | | - "acoustic(1)%wavelength": 0.0001, |
92 | | - "acoustic(1)%foc_length": 0.00045, |
93 | | - "acoustic(1)%aperture": 0.0008, |
94 | | - "acoustic(1)%delay": 0.0, |
95 | | - # Fluids Physical Parameters |
| 93 | + "patch_icpp(2)%pres": 4.0e8, |
| 94 | + "patch_icpp(2)%alpha_rho(1)": 1000.0 * (1.0 - 1e-6), |
| 95 | + "patch_icpp(2)%alpha(1)": 1.0 - 1e-6, |
| 96 | + "patch_icpp(2)%alpha_rho(2)": 1000.0 * 1e-6, |
| 97 | + "patch_icpp(2)%alpha(2)": 1e-6, |
| 98 | + "patch_icpp(2)%tau_e(1)": 0.0, |
| 99 | + "patch_icpp(2)%tau_e(2)": 0.0, |
| 100 | + "patch_icpp(2)%tau_e(3)": 0.0, |
| 101 | + # Damageable solid disk |
| 102 | + "patch_icpp(3)%alter_patch(1)": "T", |
| 103 | + "patch_icpp(3)%geometry": 2, |
| 104 | + "patch_icpp(3)%x_centroid": 0.005, |
| 105 | + "patch_icpp(3)%y_centroid": 0.005, |
| 106 | + "patch_icpp(3)%radius": 0.0015, |
| 107 | + "patch_icpp(3)%vel(1)": 0.0, |
| 108 | + "patch_icpp(3)%vel(2)": 0.0, |
| 109 | + "patch_icpp(3)%pres": 1.0e5, |
| 110 | + "patch_icpp(3)%alpha_rho(1)": 1000.0 * 1e-6, |
| 111 | + "patch_icpp(3)%alpha(1)": 1e-6, |
| 112 | + "patch_icpp(3)%alpha_rho(2)": 1000.0 * (1.0 - 1e-6), |
| 113 | + "patch_icpp(3)%alpha(2)": 1.0 - 1e-6, |
| 114 | + "patch_icpp(3)%tau_e(1)": 0.0, |
| 115 | + "patch_icpp(3)%tau_e(2)": 0.0, |
| 116 | + "patch_icpp(3)%tau_e(3)": 0.0, |
| 117 | + # Fluids: 1 = water (no shear stiffness), 2 = damageable solid |
96 | 118 | "fluid_pp(1)%gamma": 1.0e00 / (4.4e00 - 1.0e00), |
97 | 119 | "fluid_pp(1)%eos": "stiffened_gas", |
98 | | - "fluid_pp(1)%pi_inf": 4.4e00 * 5.57e08 / (4.4e00 - 1.0e00), |
| 120 | + "fluid_pp(1)%pi_inf": 4.4e00 * 6.0e08 / (4.4e00 - 1.0e00), |
99 | 121 | "fluid_pp(1)%G": 0.0, |
100 | 122 | "fluid_pp(2)%gamma": 1.0e00 / (4.4e00 - 1.0e00), |
101 | 123 | "fluid_pp(2)%eos": "stiffened_gas", |
102 | 124 | "fluid_pp(2)%pi_inf": 4.4e00 * 6.0e08 / (4.4e00 - 1.0e00), |
103 | | - "fluid_pp(2)%G": 1.0e09, |
| 125 | + "fluid_pp(2)%G": 1.0e9, |
104 | 126 | } |
105 | 127 | ) |
106 | 128 | ) |
0 commit comments