You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-3Lines changed: 15 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -102,6 +102,7 @@ MFEM is included as a submodule (`external/mfem-geg`) and built automatically. T
102
102
### Defining a JSON file
103
103
104
104
Cases can be defined by parsing a JSON file with the problem information. See a complete [example](https://github.com/OpenSEMBA/dgtd/blob/main/testData/maxwellInputs/1D_PEC/1D_PEC.json) of a valid JSON file.
105
+
Each case must follow the enforced repository naming layout: the case folder name, the `.json` filename, the `.msh` filename, and `model.filename` must all share the same `<case_name>` base, and `model.filename` must not include a path.
105
106
An OpenSEMBA/dgtd JSON file must have the following structure. Legend: **[REQUIRED]** = must be present; **[OPTIONAL]** = has a default value (shown).
106
107
107
108
- solver_options:
@@ -148,7 +149,9 @@ An OpenSEMBA/dgtd JSON file must have the following structure. Legend: **[REQUIR
148
149
- **tags**:
149
150
- Array of integers. Mesh boundary attribute IDs. (Surfaces in 3D, Segments in 2D, Points in 1D.)
150
151
- **type**:
151
-
- String. Boundary condition class. Can be `"PEC"`, `"PMC"`, `"SMA"`, or `"SGBC"`.
152
+
- String. Boundary condition class. Can be `"PEC"`, `"PMC"`, `"SMA"`, `"SGBC"`, or `"SBC_PML"`.
153
+
- *(For `type: "SGBC"` or `type: "SBC_PML"` only)* exporter_probe:
154
+
- Boolean. If `true` and a top-level `probes.exporter` exists, also exports the internal SGBC sub-solver fields using the exporter cadence. The dataset is named `InsideSGBC_tag<first_tag>`.
152
155
- *(For `type: "SGBC"` only)* material:
153
156
- Object. Defines a single-layer surface general boundary condition. Mutually exclusive with `layers`.
154
157
- relative_permittivity: Double. Defaults to `1.0`.
@@ -163,6 +166,9 @@ An OpenSEMBA/dgtd JSON file must have the following structure. Legend: **[REQUIR
163
166
- Object. Boundary conditions applied to the outer and inner faces of the SGBC sub-domain. Can be placed at the boundary level or inside `material` (the latter is kept for backward compatibility).
164
167
- left: String. Condition on the outer (field-side) face. Can be `"PEC"`, `"PMC"`, or `"SMA"`.
165
168
- right: String. Condition on the inner face. Can be `"PEC"`, `"PMC"`, or `"SMA"`.
169
+
- *(For `type: "SBC_PML"` only)*
170
+
- Automatic absorbing-layer shortcut built on the SGBC machinery. `material`, `layers`, and `sgbc_boundaries` must not be provided.
171
+
- The current preset generates one lossless vacuum layer sized from the maximum source frequency estimate, with fixed order/segment defaults, and forces the internal right boundary to `SMA`.
166
172
167
173
- probes:
168
174
- Object. Controls data extraction. If undefined, no data is recorded.
@@ -181,6 +187,11 @@ An OpenSEMBA/dgtd JSON file must have the following structure. Legend: **[REQUIR
181
187
- **polarization**: String. Component to record. Can be `"X"`, `"Y"`, or `"Z"`.
182
188
- **position**: Array of doubles. Spatial coordinates. Same constraints as for `point`.
183
189
- steps / saves: (steps and saves are mutually exclusive; see `exporter` above for details)
190
+
- farfield:
191
+
- Array. Each entry exports E/H fields on a near-to-far-field surface submesh for later far-field post-processing. Output is written under `Exports/<run-mode>/<case>/NearToFarFieldProbes/<name>/rank<rank>`.
192
+
- **tags**: Array of integers. Boundary tags that define the near-to-far-field surface.
193
+
- name: String. Defaults to `"NearFieldProbe"`.
194
+
- steps / saves: (steps and saves are mutually exclusive; see `exporter` above for details)
184
195
- domain_snapshot:
185
196
- Object. Periodic full-domain field snapshot (alternative to the incremental exporter).
@@ -217,15 +229,15 @@ An OpenSEMBA/dgtd JSON file must have the following structure. Legend: **[REQUIR
217
229
- **propagation**: Array of 3 doubles. Wave propagation direction vector.
218
230
- **magnitude**: Object.
219
231
- **spread**: Double. Standard deviation $\sigma$ of the Gaussian envelope.
220
-
- **mean**: Array of doubles. Position of the Gaussian center projected onto the propagation axis at $t = 0$. Typically set behind the TFSF box. Provide as a 1-, 2-, or 3-component vector matching the mesh dimension.
232
+
- mean: Array of doubles. Optional. Position of the Gaussian center projected onto the propagation axis at $t = 0$. Provide as a 1-, 2-, or 3-component vector matching the mesh dimension. If omitted, the solver auto-computes a value aligned with `propagation` so the pulse starts about $5\sigma$ before the most upstream TFSF point.
221
233
- frequency: Double (Hz). Carrier frequency. If defined, wraps the Gaussian in a sinusoidal modulation (modulated Gaussian). If omitted, a broadband Gaussian pulse is used.
222
234
223
235
*For `type: "dipole"` — derivative-Gaussian dipole source within a TFSF box:*
224
236
- **tags**: Array of integers. Mesh boundary tags that form the TFSF interface surface.
225
237
- **magnitude**: Object.
226
238
- **length**: Double. Dipole length.
227
239
- **spread**: Double. Gaussian spread parameter.
228
-
- **mean**: Double. Gaussian center position along the dipole axis.
240
+
- mean: Double. Optional. Gaussian center position along the dipole axis. If omitted, the solver auto-computes it from the nearest TFSF-surface radius and clamps it to a stable minimum.
0 commit comments