Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -174,3 +174,4 @@ junit/
# Quarto
.quarto/
README_files/
.rnet_cache/
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

### Added

- `Feed3D`: coils of real wire in the 3D field. The coil current flows along grid edges
across a gap between the terminals of an `ImpedanceConductor3D` (a delta-gap source) and
returns on its surface, so the impedance includes the coil's own loss and proximity
effect; terminals not joined through one piece of metal are refused. Tested on a coaxial
line against its closed form (reactance to 0.13 %, resistance to 4 % at a / h = 4) and on
a ring of wire.
- The slotted-cylinder test of step R4 as unit tests (`test_cutcell.py`): the z-invariant
slotted tube against NGSolve to 0.1 % with cut cells (staircase 20 % off), the finite tube
with closed and through slits to 6 %.
- `benchmarks/rnet_driver.py`: R_net of the BUG driver (helical coil, Faraday shield with
24 slits, optional EMS with supports) on reduced grids, with the cut cells cached.
- `InductiveField3D(cut_cell_samples=...)`: the sampling of the cut cells' crossings.

- Method cards (methodcard) on the equations of the models: the reactions, the global model
(cusps, wall areas, gas temperature, the steady state), the OpenCR rates, the neutralizer
(beam, Knudsen profile, pumping, fractions, sources, fixed point), the 0D RF driver
Expand Down Expand Up @@ -264,6 +277,9 @@ format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

### Fixed

- The auxiliary-space preconditioner's coarsest multigrid level could be exactly singular
(two coarse nodes reaching one fine node through a gap in a conductor); a relative
diagonal shift of 1e-10 keeps it regular.
- The docstrings' `:func:`, `:class:` and `:meth:` roles are code spans, which the API pages
render.

Expand Down
111 changes: 111 additions & 0 deletions benchmarks/rnet_driver.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
{
"results": [
{
"variant": "bug",
"h": 0.004,
"r_net": 0.2664038792549869,
"resistances": {
"coil": 0.07089950205981722,
"shield": 0.1955043360682568
},
"inductance": 4.11169189604374e-06,
"power_balance": -1.5437805556128836e-07,
"unknowns": 1116650,
"iterations": 758,
"setup_seconds": 443.21280483300507,
"seconds": 382.2669253750064,
"tolerance": 0.0001,
"driver": {
"plasma_radius": 0.1185,
"length": 0.17,
"shield_wall": 0.008,
"slits": 24,
"slit_width": 0.002,
"slit_margin": 0.01,
"coil_radius": 0.1385,
"turns": 6,
"pitch": 0.02,
"wire_radius": 0.004,
"lead_radius": 0.155,
"lead_side": 0.01,
"feed_gap": 0.01,
"ems_distance": null,
"ems_wall": 0.008,
"box_half": 0.17,
"box_end": 0.22,
"frequency": 1000000.0
}
},
{
"variant": "bug",
"h": 0.0034,
"r_net": 0.2855851383706187,
"resistances": {
"coil": 0.0679426879710528,
"shield": 0.21764246298162943
},
"inductance": 4.102877478409794e-06,
"power_balance": 4.405713682764656e-08,
"unknowns": 1830128,
"iterations": 860,
"setup_seconds": 418.28152704099193,
"seconds": 1394.2107854999922,
"tolerance": 0.0001,
"driver": {
"plasma_radius": 0.1185,
"length": 0.17,
"shield_wall": 0.008,
"slits": 24,
"slit_width": 0.002,
"slit_margin": 0.01,
"coil_radius": 0.1385,
"turns": 6,
"pitch": 0.02,
"wire_radius": 0.004,
"lead_radius": 0.155,
"lead_side": 0.01,
"feed_gap": 0.01,
"ems_distance": null,
"ems_wall": 0.008,
"box_half": 0.17,
"box_end": 0.22,
"frequency": 1000000.0
}
},
{
"variant": "coil",
"h": 0.004,
"r_net": 0.07035406989410348,
"resistances": {
"coil": 0.07035458043107835
},
"inductance": 6.841778988157454e-06,
"power_balance": 7.256680041978214e-06,
"unknowns": 1152314,
"iterations": 638,
"setup_seconds": 0.4532764999894425,
"seconds": 687.7985254580126,
"tolerance": 1e-05,
"driver": {
"plasma_radius": 0.1185,
"length": 0.17,
"shield_wall": 0.008,
"slits": 24,
"slit_width": 0.002,
"slit_margin": 0.01,
"coil_radius": 0.1385,
"turns": 6,
"pitch": 0.02,
"wire_radius": 0.004,
"lead_radius": 0.155,
"lead_side": 0.01,
"feed_gap": 0.01,
"ems_distance": null,
"ems_wall": 0.008,
"box_half": 0.17,
"box_end": 0.22,
"frequency": 1000000.0
}
}
]
}
Loading
Loading