modified: TrackRecon.C

new file:   anasen_fem/cfrac_pred_2026-10-28/README.md
	new file:   anasen_fem/cfrac_pred_2026-10-28/band_centre.csv
	new file:   anasen_fem/cfrac_pred_2026-10-28/cfrac_pred_method.md
	new file:   anasen_fem/cfrac_pred_2026-10-28/check_extrapolation.log
	new file:   anasen_fem/cfrac_pred_2026-10-28/collect_slices.log
	new file:   anasen_fem/cfrac_pred_2026-10-28/fit_function.log
	new file:   anasen_fem/cfrac_pred_2026-10-28/function_map.csv
	new file:   anasen_fem/cfrac_pred_2026-10-28/make_cfrac_pred.log
	new file:   anasen_fem/cfrac_pred_2026-10-28/map_function.log
	new file:   anasen_fem/cfrac_pred_2026-10-28/slices_fit.csv
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/README.md
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/anode_dot.csv
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/elmer_phys.log
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/elmer_weight.log
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/elmergrid.log
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/geometry.py
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/probe_fields.py
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/scalars.dat
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/scalars.dat.names
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/scalars_weight.dat
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/scalars_weight.dat.names
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/wires2d.sif
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/wires2d_weight.sif
	new file:   anasen_fem/cfrac_pred_2026-10-28/solve_z44.7820/wires_gmsh2d_bc.py
This commit is contained in:
Vignesh Sitaraman 2026-11-04 16:49:26 -05:00
parent 8be662d0d1
commit 4e6e101370
25 changed files with 3640 additions and 1 deletions

View File

@ -4274,6 +4274,14 @@ void protonAlphaElastic_core(HistPlotter *plotter, const std::vector<Event> &Si_
if (beam_energy_at_vertex <= 0.0)
beam_energy_at_vertex = 0.001;
// E-dE comparison for the proton runs, the twin of miscHistograms' EdEComparison pair: calibrated anode dE,
// and dE x sin(theta) (path-length normalised). Before fillHypothesis, so each candidate is filled once.
if (anodeE_MeV >= 0.0)
{
plotter->Fill2D(rx + "_dEgasCalib_vs_E" + sfx, 400, 0, 10, 800, 0, 0.2, sievent.Energy1, anodeE_MeV, "EdEComparison");
plotter->Fill2D(rx + "_dEgasCalib*sintheta_vs_E" + sfx, 400, 0, 10, 800, 0, 0.2, sievent.Energy1, anodeE_MeV * sin(theta), "EdEComparison");
}
auto fillHypothesis = [&](bool alphaHyp)
{
// const std::string ejtag = (alphaHyp && sievent.Energy1 < 5) ? "_a" : "_p";
@ -5018,7 +5026,8 @@ void miscHistograms_17Fax(HistPlotter *plotter, const std::vector<Event> &QQQ_Ev
// 17F beam energy at the gas target, after the entrance-window foils:
// 67.8 MeV -> Mylar (MCP, 4.2426 um-equiv) -> 64.0305 MeV -> Kapton (7.8 um) -> 56.7173 MeV.
double ebeam_17F_MeV = 56.72;
// double ebeam_17F_MeV = 56.72;
double ebeam_17F_MeV = 38.96;
// 17F(a,a)/(a,d)/(a,p): ejectile + recoil masses per channel.
AAEjectileMasses ej17F{mass_4He, mass_17F, mass_2H, mass_19Ne_rec, mass_1H, mass_20Ne};
// AAEjectileMasses ej16O{mass_4He, mass_16O, mass_2H, mass_19Ne_rec, mass_1H, mass_20Ne};

View File

@ -0,0 +1,42 @@
# Charge-fraction prediction, 2026-10-28
Four slices solved for the defense figure `defense/figures/cfrac_pred.png`,
archived here beside the solves that were already in `wires2d/vtu_files`.
| index | z (mm) | phase in the cell | relative azimuth | anode-cathode gap |
|---|---|---|---|---|
| 10 | 0.0000 | midpoint | 7.500 deg | 6.220 mm |
| 10 | 19.6900 | crossover | 0.037 deg | 4.339 mm |
| 11 | 19.7940 | crossover | 0.003 deg | 4.339 mm |
| 12 | 29.8500 | quarter | 3.794 deg | 4.908 mm |
| 13 | 39.9200 | midpoint, next cell | 7.435 deg | 6.247 mm |
| 14 | 44.7820 | three eighths | 5.625 deg | 5.535 mm |
| 15 | 49.9800 | three quarters | 3.699 deg | 4.925 mm |
Indices 10 and 11 were already here; 12 to 15 were added by this study.
Each index has an `elfield_anasen_*` (physical solve, anodes at 660 V) and an
`elfield_weight_*` (Ramo weighting solve, cathode 1 at 1 V) on the same mesh.
The archived 10 and 11 ran at 650 V, the new ones at 660; only ratios are
used, and the extraction reads the electrode potential off the wire interior
rather than assuming it.
`dotproduct.py` was not run on the new slices: it writes another ~1 GB per
slice and only the anode surfaces are needed. `probe_fields.py` in the code
below computes the same product straight from the two field VTUs.
## Do not take E.E_w from the nodal "electric field" array
`FluxSolver` recovers the gradient element by element and a degenerate element
puts a spike on a node. The meshes for 12 to 15 carry ~960 nodes above
1e6 V/m where meshes 10 and 11 have none, so the extremum over a wire's
surface nodes lands on a spike: a re-solve of z = 19.794 returned -1.526e12
where the archived value is -2.569e8. Take it from the potential instead, as
`surface_field.py` does. That is stable to five figures across meshes.
## The code
`scratch/cfrac_fem_pred_2026-10-28/` in the analysis repository
(github.com/vs19g/ANASEN-Analysis_private, branch devel_vignesh). `run_all.sh`
reruns everything; `collect_slices.py` and `map_function.py` read the VTUs
here. The CSVs in this directory are their output, so the numbers can be read
without re-solving.

View File

@ -0,0 +1,28 @@
# Benchmark_SX3_ref/Benchmark_SX3_A1C1_cfrac_vs_sx3pczguess, alpha-source runs 12 and 18-21, 9850 entries
# main band only: c/(a+c) > 0.25 ; slice width 4.0 mm
z_mm,counts,median_cfrac,c_over_a
-42.00,271,0.41183,0.70018
-38.00,407,0.42125,0.72786
-34.00,415,0.44240,0.79339
-30.00,281,0.47118,0.89102
-26.00,94,0.50500,1.02020
-22.00,24,0.52333,1.09790
-14.00,263,0.50393,1.01584
-10.00,234,0.48917,0.95759
-6.00,263,0.42490,0.73883
-2.00,220,0.41763,0.71713
2.00,121,0.43272,0.76279
6.00,191,0.45483,0.83430
10.00,627,0.45713,0.84207
14.00,494,0.47207,0.89417
18.00,417,0.47070,0.88930
22.00,358,0.47882,0.91874
26.00,322,0.44903,0.81499
30.00,411,0.43383,0.76625
34.00,676,0.43226,0.76138
38.00,665,0.41607,0.71252
42.00,549,0.40439,0.67895
46.00,473,0.41838,0.71933
50.00,232,0.43873,0.78166
54.00,128,0.45327,0.82905
58.00,100,0.45320,0.82882
1 # Benchmark_SX3_ref/Benchmark_SX3_A1C1_cfrac_vs_sx3pczguess, alpha-source runs 12 and 18-21, 9850 entries
2 # main band only: c/(a+c) > 0.25 ; slice width 4.0 mm
3 z_mm,counts,median_cfrac,c_over_a
4 -42.00,271,0.41183,0.70018
5 -38.00,407,0.42125,0.72786
6 -34.00,415,0.44240,0.79339
7 -30.00,281,0.47118,0.89102
8 -26.00,94,0.50500,1.02020
9 -22.00,24,0.52333,1.09790
10 -14.00,263,0.50393,1.01584
11 -10.00,234,0.48917,0.95759
12 -6.00,263,0.42490,0.73883
13 -2.00,220,0.41763,0.71713
14 2.00,121,0.43272,0.76279
15 6.00,191,0.45483,0.83430
16 10.00,627,0.45713,0.84207
17 14.00,494,0.47207,0.89417
18 18.00,417,0.47070,0.88930
19 22.00,358,0.47882,0.91874
20 26.00,322,0.44903,0.81499
21 30.00,411,0.43383,0.76625
22 34.00,676,0.43226,0.76138
23 38.00,665,0.41607,0.71252
24 42.00,549,0.40439,0.67895
25 46.00,473,0.41838,0.71933
26 50.00,232,0.43873,0.78166
27 54.00,128,0.45327,0.82905
28 58.00,100,0.45320,0.82882

View File

@ -0,0 +1,228 @@
# How the predicted points on `cfrac_pred.png` are generated
2026-10-28. `defense/figures/cfrac_pred.png` is `cfrac.png` with open red
markers added: the single-cathode fraction predicted from the weighting-field
solves, over the measured A1C1 charge fraction (alpha-source runs 12 and
18--21, 9850 events). `cfrac.png` itself is unchanged.
## 1. The quantity
Shockley--Ramo gives the current induced on an electrode by an ion drifting at
$v = \mu E$ as $i = -q\mu\,(E\cdot E_w)$. The 3 us shaping and the 650 ns
coincidence keep only the first part of the ion drift, so what the readout
sees is set by $E\cdot E_w$ where the ions start, on the surface of the anode
that avalanched. This is the quantity on slide 21.
$E$ comes from the physical solve, anodes biased and everything else grounded.
$E_w$ comes from the Ramo weighting solve, one cathode at 1 V and everything
else grounded, on the same mesh. Both are the Gmsh/Elmer solves in
`anasen_fem`.
## 2. The slices
The wires are straight chords between the two end planes, so the lattice is a
hyperboloid: the relative azimuth of the anode and cathode lattices is not
linear in z, and the model's crossovers sit at z = 19.787 and 60.051 mm with
the cell midpoint at 39.92 mm. Seven slices were used, two already archived
and five solved for this:
| z (mm) | phase | relative azimuth | gap (mm) | $\lvert E\cdot E_w\rvert$ (V$^2$/m$^2$) |
|---|---|---|---|---|
| 19.794 | crossover | 0.003 deg | 4.339 | 2.9308e8 |
| 19.690 | crossover, a second mesh | 0.037 deg | 4.339 | 2.9308e8 |
| 29.850 | quarter | 3.794 deg | 4.908 | 2.5092e8 |
| 49.980 | three quarters | 3.699 deg | 4.925 | 2.5041e8 |
| 44.782 | three eighths | 5.625 deg | 5.535 | 2.1167e8 |
| 39.920 | midpoint, next cell | 7.500 deg | 6.247 | 1.7489e8 |
| 0.000 | midpoint | 7.500 deg | 6.220 | 1.7375e8 |
The two crossover solves are independent meshes at different z and agree to
five figures. A solve costs about an hour, mostly meshing 10.3 M nodes.
## 3. Reading the field off the surface
**Not** from Elmer's nodal `electric field` array. `FluxSolver` recovers the
gradient element by element, and one degenerate element puts a spike on a
node. Taking the extremum over a wire's surface nodes reproduces slide 21
exactly on the archived meshes, which happen to be clean, but it does not
survive a re-mesh: the new meshes carry around 960 nodes above $10^6$ V/m
where the archived ones have none, and a re-solve of z = 19.794 returned
$-1.5\times10^{12}$ for a configuration whose archived value is
$-2.57\times10^8$.
The potential is unaffected. In the gas annulus outside a wire it is harmonic
and the wire surface is an equipotential at $V_0$, so
$$V(r,\theta) = V_0 + b\ln(r/R) + \sum_m \left(r^m - R^{2m}r^{-m}\right)
\left(c_m\cos m\theta + d_m\sin m\theta\right)$$
is exact, and a least-squares fit of it over the few hundred to few thousand
nodes within $R$ to $R+0.3$ mm gives the normal field at the surface
analytically. Both solves hold the anode at a fixed potential, so at its
surface $E$ and $E_w$ are both normal to it and $E\cdot E_w$ is the product of
the two normal components; the value taken is its extremum over $\theta$,
which falls within 0.1 deg of the direction to the driven cathode.
$V_0$ is read off the wire interior rather than assumed. The interior is
meshed as gas with the wire boundary as a Dirichlet condition, so it solves to
exactly the electrode potential, and the two campaigns differ there: the
archived solves ran at 650 V and the current sifs read 660. Getting $V_0$
wrong by those 10 V leaves an offset the basis cannot represent, since every
basis function vanishes at $r=R$, and the fit absorbs it into the gradient.
With $V_0$ read from the interior the fit residual is 0.003 V and the answer
is stable to five figures over annulus thicknesses of 0.10 to 0.50 mm and over
2 to 12 azimuthal orders. It is also stable across meshes, which the nodal
recipe is not.
The two recipes agree on every ratio, which is all that enters the figure:
crossover/midpoint 1.687 against 1.711, and 4.68 against 4.67 for the
neighbouring anodes at $\pm15$ deg. Slide 21's 1.7x stands either way.
## 4. What function it follows
Each slice has 24 anodes at 15 deg intervals around the driven cathode, so one
solve samples the falloff at 12 separations at once, from 4.3 mm out to the
68 mm of the far side of the barrel. Seven slices give one curve: compared at
the azimuths they share, two meshes agree to five figures at the crossover and
at 15 deg, the quarter and three-quarter agree to 0.2%, and the two midpoints
to 0.05%. $E\cdot E_w$ is a function of the anode--cathode geometry alone,
which is what lets one table of azimuth serve every cell.
The curve is a **Lorentzian in the azimuthal arc**. The wires are infinite, so
this is a two-dimensional problem, and in 2D a line charge at height $h$ above
a grounded plane induces $\sigma(x) = (q/\pi)\,h/(h^2+x^2)$. Fitted over the
cell,
$$\lvert E\cdot E_w\rvert = \frac{D_0}{1 + (s/h)^2},
\qquad s = r_a\lvert\Delta\phi\rvert, \qquad h = 5.102\ \mathrm{mm},$$
with an rms of 0.49% over the nine points inside the cell. The fitted width is
16% above the geometric anode--cathode gap of 4.33 to 4.39 mm, which is what
the discreteness of the cathodes and the curvature of the barrel cost.
The three-eighths slice is a check of this rather than an input to it. Fitted
on the crossover, quarter and midpoint alone the Lorentzian gave $h = 5.100$
mm and put that slice at $2.117\times10^8$; solving it returned
$2.1167\times10^8$, a difference of 0.015%. Normalised at the crossover, over
one half cell:
| relative azimuth | fit | solved |
|---|---|---|
| 0.000 deg | 1.0000 | 1.0000 |
| 1.875 deg | 0.9591 | -- |
| 3.750 deg | 0.8542 | 0.8553 |
| 5.625 deg | 0.7226 | 0.7222 |
| 7.500 deg | 0.5944 | 0.5948 |
The Mathieson form, the standard one for wire chambers, is the
three-dimensional case: a point avalanche on a cathode *plane*. It is not this
geometry. Over one cell it fits as well, because the range is too narrow to
separate the two forms, but its parameters mean nothing here.
Away from the cell the Lorentzian is only local. It holds to 3% out to 11 deg,
and then the real falloff is faster -- 79% of it at 15 deg, 60% at 19 deg,
about a third beyond 30 deg -- because the cathodes are discrete wires that
screen each other rather than a continuous plane.
## 5. Placing the points on the figure
The model is
$$c/a = \lambda\,D(z),\qquad
D(z) = \lvert E\cdot E_w\rvert \ \text{on the fired anode's surface},$$
with one free scale $\lambda$. $D$ is tabulated against relative azimuth and
mapped back onto the settled crossover grid ($\pm19.7248$, $\pm59.8527$ mm),
which is what the red dashed lines in the figure mark; the azimuth runs
linearly from 0 at a crossover to 7.5 deg at a cell midpoint. The figure's
observable is $c/(a+c)$.
The markers are the solved phases. The curve drawn through them is the fitted
Lorentzian of section 4 rather than interpolation between those phases; it
passes through them to better than 0.5% in $c/a$, under a pixel at this scale.
$\lambda$ is fitted at **one point**, the z = +19.7248 mm crossover, which is
the best populated of them with 600 main-band events within $\pm3$ mm. The
overlay therefore tests the shape and the depth of the modulation, not its
level.
The band centre of the data is the median of $c/(a+c)$ over the main band,
$c/(a+c) > 0.25$, in 4 mm slices of z. The low band near 0.1 is a separate
population and is excluded.
## 6. What the comparison says
The predicted crossover/midpoint ratio in $c/a$ is **1.68**. Measured from the
band centre of the figure it is **1.22** against the z = 0 midpoint and
**1.32** against +39.79, and 1.19 to 1.34 over 24 variants of the band cut,
the window width and the statistic. The predicted modulation is about half
again as deep as the measured one.
Two things account for most of that, and both are about the figure's x axis
and its observable rather than about the fields.
**The x axis is not a measured z.** It is the SX3 track angle projected onto
the 37 mm anode radius, so every event is entered at a smeared z, and smearing
damps a modulation whose period is the cell. Fitting the first harmonic of
both curves gives an amplitude of 0.0342 in the data against 0.0525 predicted,
a ratio of 0.65; a Gaussian of $\sigma = 5.9$ mm would account for all of it.
**$c/(a+c)$ is not what the model predicts.** The model predicts $c/a$, and
converting assumes the anode signal does not vary along the cell. It does. On
the A1C2 benchmark sample, where the position comes from the A1C2
reconstruction rather than the projection, the raw anode median runs from
8798 at the cell midpoint to 7350 at the crossover, a spread of 18%. Against
that sharper position the three observables compare as follows, each scaled by
a single factor at the crossover:
| observable | rms against the model | measured midpoint-to-crossover |
|---|---|---|
| raw cathode | 15.1% | 1.13 |
| $c/a$ | 6.7% | 1.37 |
| $c/a$ from $c/(a+c)$ | 6.9% | 1.38 |
| model | -- | 1.63 over the same range |
$c/a$ is the better observable and the one the model actually predicts: the
avalanche gain cancels in the ratio, where it does not in the raw cathode. The
raw cathode varies by only 1.13 against a predicted 1.63, and most of what
modulation $c/a$ does show at the raw level is carried by the anode falling
towards the crossover rather than by the cathode rising.
With the sharper position the measured ratio rises from 1.22--1.32 to 1.37,
against 1.63 for the model folded the same way. The remainder is not accounted
for here. Candidates that have not been separated: the residual 2.57 mm
resolution of the A1C2 position, misassignment of events to the wrong cell
(the output carries a `cellsel_misclass` histogram for exactly this), the
cathode threshold, and the fact that the benchmark sample requires two
cathodes above threshold and so is not the same selection as a true A1C1
event.
## 7. The same thing in $c/a$
`cfrac_pred_ca.png` is the same data and the same model with $c/a$ on the y
axis instead of $c/(a+c)$. It is the more direct comparison: $c/a$ is what the
weighting field predicts, so the curve there is the fitted Lorentzian itself,
undistorted, and nothing has to be assumed about the anode signal. The model
runs from 0.9063 at a crossover to 0.5387 at a midpoint.
That figure is redrawn rather than composited, because $y o y/(1-y)$ is not
linear and the markers could not simply be moved. The margins and font sizes
are the ones measured off `cfrac.png`, which are also those of the macro that
made it, so the two match. The source bins are 0.005 wide in $c/(a+c)$ and
$0.005/(1-y)^2$ wide in $c/a$, so each is spread over the target bins its
edges span in proportion to the overlap; filling at the bin centre instead
leaves gaps that show as horizontal stripes.
## 8. Where everything lives
The solves are archived beside the earlier ones in
`anasen_fem/wires2d/vtu_files` as indices 12 to 15, with the derived tables and
a README in `anasen_fem/cfrac_pred_2026-10-28`.
The code is `scratch/cfrac_fem_pred_2026-10-28/` in the analysis repository.
`run_all.sh` reruns the whole chain. The figure is composited onto a copy of
`cfrac.png` rather than onto a regenerated plot, because no script for that
figure exists in either repository and redrawing it would have changed the
picture under the markers; the axis transform is read back out of the image
itself, the four red dashed verticals fixing the x scale to 0.02 px.

View File

@ -0,0 +1,5 @@
configuration new z repeats z new used diff
midpoint 39.920 0.000 1.7489e+08 1.7375e+08 +0.66%
quarter / three-quarter 49.980 29.850 2.5041e+08 2.5092e+08 -0.20%
largest disagreement 0.66%; the figure's modulation is 69%, so this does not bear on it

View File

@ -0,0 +1,8 @@
crossover (archived) z= 19.7940 |d_az|= 0.003 anodes [23] -2.9308e+08 -2.9308e+08
crossover, 2nd mesh (archived) z= 19.6900 |d_az|= 0.037 anodes [23] -2.9308e+08 -2.9308e+08
midpoint (archived) z= 0.0000 |d_az|= 7.500 anodes [23, 22] -1.7375e+08 -1.7375e+08 -1.7375e+08
quarter (new) z= 29.8500 |d_az|= 3.794 anodes [23] -2.5092e+08 -2.5092e+08
midpoint, next cell (new) z= 39.9200 |d_az|= 7.500 anodes [0, 23] -1.7489e+08 -1.7612e+08 -1.7366e+08
three quarters (new) z= 49.9800 |d_az|= 3.699 anodes [0] -2.5041e+08 -2.5041e+08
three eighths (new) z= 44.7820 |d_az|= 5.625 anodes [0] -2.1167e+08 -2.1167e+08
wrote slices_fit.csv

View File

@ -0,0 +1,110 @@
168 rows, 7 slices
collapse: slices compared at the azimuths they share
|d_az| crossover crossover_2nd midpoint midpoint_next quarter three_eighths three_quarter
0.0 2.9308e+08 2.9308e+08 - - - - -
4.0 - - - - 2.5092e+08 - 2.5041e+08
6.0 - - - - - 2.1167e+08 -
7.0 - - - 1.7612e+08 - - -
8.0 - - 1.7375e+08 1.7366e+08 - - -
9.0 - - - - - 1.4115e+08 -
11.0 - - - - 1.1293e+08 - 1.1060e+08
fitted over the cell (|d_az| <= 7.6 deg, 9 points):
Lorentzian 1/(1+(arc/h)^2) : h = 5.102 mm, rms 0.0049 (0.49%)
Mathieson (h fixed at the gap) : K3 = 1.930, rms 0.0056 (0.56%)
the geometric anode-cathode gap is 4.330 to 4.389 mm
extrapolation: anodes the cell fit never saw
|d_az| arc[mm] measured Lorentzian ratio
8.0 4.219 1.7372e+08 1.7422e+08 0.997
9.0 5.300 1.4115e+08 1.4108e+08 1.000
11.0 6.352 1.1176e+08 1.1504e+08 0.972
15.0 8.407 6.2616e+07 7.8964e+07 0.793
19.0 10.581 3.3326e+07 5.5340e+07 0.602
21.0 11.661 2.5520e+07 4.7134e+07 0.541
22.0 12.607 2.0513e+07 4.1281e+07 0.497
23.0 12.729 2.0475e+07 4.0602e+07 0.504
24.0 13.781 1.7098e+07 3.5361e+07 0.484
26.0 14.818 1.4266e+07 3.1090e+07 0.459
30.0 16.814 9.3546e+06 2.4734e+07 0.378
34.0 19.047 6.5436e+06 1.9639e+07 0.333
36.0 20.142 5.8540e+06 1.7688e+07 0.331
37.0 21.118 5.3724e+06 1.6178e+07 0.332
38.0 21.045 5.3095e+06 1.6284e+07 0.326
39.0 22.262 4.8845e+06 1.4639e+07 0.334
41.0 23.285 4.3965e+06 1.3439e+07 0.327
45.0 25.220 3.3175e+06 1.1533e+07 0.288
49.0 27.514 2.7932e+06 9.7520e+06 0.286
51.0 28.622 2.6716e+06 9.0341e+06 0.296
52.0 29.434 2.5395e+06 8.5570e+06 0.297
53.0 29.653 2.5524e+06 8.4345e+06 0.303
54.0 30.742 2.4121e+06 7.8632e+06 0.307
56.0 31.751 2.2352e+06 7.3839e+06 0.303
60.0 33.627 1.7979e+06 6.6010e+06 0.272
64.0 35.980 1.6430e+06 5.7823e+06 0.284
66.0 37.103 1.6105e+06 5.4441e+06 0.296
67.0 38.042 1.5707e+06 5.1834e+06 0.303
68.0 37.871 1.5565e+06 5.2292e+06 0.298
69.0 39.223 1.5011e+06 4.8810e+06 0.308
71.0 40.217 1.4101e+06 4.6463e+06 0.303
75.0 42.034 1.1748e+06 4.2592e+06 0.276
79.0 44.446 1.1222e+06 3.8152e+06 0.294
81.0 45.583 1.1143e+06 3.6296e+06 0.307
82.0 46.260 1.0882e+06 3.5254e+06 0.309
83.0 46.577 1.0947e+06 3.4782e+06 0.315
84.0 47.703 1.0574e+06 3.3177e+06 0.319
86.0 48.684 1.0016e+06 3.1868e+06 0.314
90.0 50.440 8.5453e+05 2.9709e+06 0.288
94.0 52.913 8.4006e+05 2.7023e+06 0.311
96.0 54.064 8.4082e+05 2.5894e+06 0.325
97.0 54.965 8.3265e+05 2.5059e+06 0.332
98.0 54.698 8.2620e+05 2.5303e+06 0.327
99.0 56.184 8.0766e+05 2.3993e+06 0.337
101.0 57.150 7.6964e+05 2.3195e+06 0.332
105.0 58.847 6.6855e+05 2.1886e+06 0.305
109.0 61.379 6.7132e+05 2.0130e+06 0.333
111.0 62.544 6.7610e+05 1.9392e+06 0.349
112.0 63.087 6.6789e+05 1.9062e+06 0.350
113.0 63.501 6.7212e+05 1.8816e+06 0.357
114.0 64.665 6.5545e+05 1.8149e+06 0.361
116.0 65.616 6.2759e+05 1.7629e+06 0.356
120.0 67.254 5.5350e+05 1.6786e+06 0.330
124.0 69.845 5.6538e+05 1.5570e+06 0.363
126.0 71.025 5.7228e+05 1.5060e+06 0.380
127.0 71.889 5.7164e+05 1.4702e+06 0.389
128.0 71.524 5.6744e+05 1.4851e+06 0.382
129.0 73.145 5.5911e+05 1.4203e+06 0.394
131.0 74.083 5.3764e+05 1.3848e+06 0.388
135.0 75.661 4.8056e+05 1.3279e+06 0.362
139.0 78.312 4.9815e+05 1.2399e+06 0.402
141.0 79.506 5.0640e+05 1.2031e+06 0.421
142.0 79.913 5.0405e+05 1.1909e+06 0.423
143.0 80.424 5.0740e+05 1.1759e+06 0.432
144.0 81.626 4.9829e+05 1.1416e+06 0.436
146.0 82.549 4.8099e+05 1.1163e+06 0.431
150.0 84.067 4.3539e+05 1.0765e+06 0.404
154.0 86.778 4.5748e+05 1.0105e+06 0.453
156.0 87.986 4.6690e+05 9.8307e+05 0.475
157.0 88.813 4.6955e+05 9.6492e+05 0.487
158.0 88.350 4.6625e+05 9.7501e+05 0.478
159.0 90.106 4.6241e+05 9.3749e+05 0.493
161.0 91.016 4.4806e+05 9.1892e+05 0.488
165.0 92.474 4.1067e+05 8.9025e+05 0.461
169.0 95.245 4.3703e+05 8.3936e+05 0.521
171.0 96.467 4.4772e+05 8.1828e+05 0.547
172.0 96.739 4.4858e+05 8.1369e+05 0.551
173.0 97.348 4.5166e+05 8.0358e+05 0.562
174.0 98.587 4.4633e+05 7.8356e+05 0.570
176.0 99.482 4.3405e+05 7.6956e+05 0.564
180.0 100.870 4.0281e+05 7.4858e+05 0.538
the half cell, normalised at the crossover:
d_az[deg] arc[mm] fit solved
0.000 0.000 1.0000 1.0000
1.875 1.054 0.9591 -
3.750 2.107 0.8542 0.8553
5.625 3.161 0.7226 0.7222
7.500 4.215 0.5944 0.5948
wrote function_map.png

View File

@ -0,0 +1,171 @@
# |E.E_w| at each anode surface, potential-fit recipe, annulus 0.30 mm, 6 orders
# arc_mm = r_anode * |d_az| ; gap_mm = r_cathode - r_anode
label,z_mm,anode,d_az_deg,sep_mm,arc_mm,r_a_mm,r_c_mm,gap_mm,dot_surf
crossover,19.7940,0,-14.9975,9.9284,8.4054,32.1117,36.4512,4.3394,-6.264028e+07
crossover,19.7940,1,-29.9975,18.2323,16.8123,32.1117,36.4512,4.3394,-9.357083e+06
crossover,19.7940,2,-44.9975,26.5410,25.2191,32.1117,36.4512,4.3394,-3.318036e+06
crossover,19.7940,3,-59.9975,34.4855,33.6259,32.1117,36.4512,4.3394,-1.798141e+06
crossover,19.7940,4,-74.9975,41.8790,42.0328,32.1117,36.4512,4.3394,-1.174901e+06
crossover,19.7940,5,-89.9975,48.5772,50.4396,32.1117,36.4512,4.3394,-8.545572e+05
crossover,19.7940,6,-104.9975,54.4578,58.8464,32.1117,36.4512,4.3394,-6.685716e+05
crossover,19.7940,7,-119.9975,59.4161,67.2533,32.1117,36.4512,4.3394,-5.535249e+05
crossover,19.7940,8,-134.9975,63.3651,75.6601,32.1117,36.4512,4.3394,-4.805962e+05
crossover,19.7940,9,-149.9975,66.2358,84.0669,32.1117,36.4512,4.3394,-4.354049e+05
crossover,19.7940,10,-164.9975,67.9785,92.4738,32.1117,36.4512,4.3394,-4.106824e+05
crossover,19.7940,11,-179.9975,68.5629,100.8806,32.1117,36.4512,4.3394,-4.028100e+05
crossover,19.7940,12,165.0025,67.9789,92.4766,32.1117,36.4512,4.3394,-4.106489e+05
crossover,19.7940,13,150.0025,66.2366,84.0697,32.1117,36.4512,4.3394,-4.353595e+05
crossover,19.7940,14,135.0025,63.3662,75.6629,32.1117,36.4512,4.3394,-4.805101e+05
crossover,19.7940,15,120.0025,59.4176,67.2561,32.1117,36.4512,4.3394,-5.534480e+05
crossover,19.7940,16,105.0025,54.4596,58.8492,32.1117,36.4512,4.3394,-6.685026e+05
crossover,19.7940,17,90.0025,48.5794,50.4424,32.1117,36.4512,4.3394,-8.544877e+05
crossover,19.7940,18,75.0025,41.8814,42.0356,32.1117,36.4512,4.3394,-1.174686e+06
crossover,19.7940,19,60.0025,34.4881,33.6287,32.1117,36.4512,4.3394,-1.797689e+06
crossover,19.7940,20,45.0025,26.5438,25.2219,32.1117,36.4512,4.3394,-3.316963e+06
crossover,19.7940,21,30.0025,18.2351,16.8151,32.1117,36.4512,4.3394,-9.351989e+06
crossover,19.7940,22,15.0025,9.9310,8.4082,32.1117,36.4512,4.3394,-6.258937e+07
crossover,19.7940,23,0.0025,4.3394,0.0014,32.1117,36.4512,4.3394,-2.930785e+08
crossover_2nd_mesh,19.6900,0,-15.0368,9.9491,8.4273,32.1110,36.4503,4.3393,-6.222104e+07
crossover_2nd_mesh,19.6900,1,-30.0368,18.2539,16.8339,32.1110,36.4503,4.3393,-9.314435e+06
crossover_2nd_mesh,19.6900,2,-45.0368,26.5618,25.2406,32.1110,36.4503,4.3393,-3.308520e+06
crossover_2nd_mesh,19.6900,3,-60.0368,34.5049,33.6472,32.1110,36.4503,4.3393,-1.794435e+06
crossover_2nd_mesh,19.6900,4,-75.0368,41.8966,42.0538,32.1110,36.4503,4.3393,-1.173097e+06
crossover_2nd_mesh,19.6900,5,-90.0368,48.5927,50.4605,32.1110,36.4503,4.3393,-8.535860e+05
crossover_2nd_mesh,19.6900,6,-105.0368,54.4708,58.8671,32.1110,36.4503,4.3393,-6.679819e+05
crossover_2nd_mesh,19.6900,7,-120.0368,59.4265,67.2738,32.1110,36.4503,4.3393,-5.531363e+05
crossover_2nd_mesh,19.6900,8,-135.0368,63.3726,75.6804,32.1110,36.4503,4.3393,-4.803347e+05
crossover_2nd_mesh,19.6900,9,-150.0368,66.2404,84.0871,32.1110,36.4503,4.3393,-4.352689e+05
crossover_2nd_mesh,19.6900,10,-165.0368,67.9800,92.4937,32.1110,36.4503,4.3393,-4.106183e+05
crossover_2nd_mesh,19.6900,11,179.9632,68.5614,100.8591,32.1110,36.4503,4.3393,-4.028197e+05
crossover_2nd_mesh,19.6900,12,164.9632,67.9743,92.4525,32.1110,36.4503,4.3393,-4.107492e+05
crossover_2nd_mesh,19.6900,13,149.9632,66.2290,84.0458,32.1110,36.4503,4.3393,-4.355214e+05
crossover_2nd_mesh,19.6900,14,134.9632,63.3558,75.6392,32.1110,36.4503,4.3393,-4.808003e+05
crossover_2nd_mesh,19.6900,15,119.9632,59.4046,67.2325,32.1110,36.4503,4.3393,-5.538755e+05
crossover_2nd_mesh,19.6900,16,104.9632,54.4442,58.8259,32.1110,36.4503,4.3393,-6.691537e+05
crossover_2nd_mesh,19.6900,17,89.9632,48.5617,50.4193,32.1110,36.4503,4.3393,-8.554925e+05
crossover_2nd_mesh,19.6900,18,74.9632,41.8619,42.0126,32.1110,36.4503,4.3393,-1.176564e+06
crossover_2nd_mesh,19.6900,19,59.9632,34.4672,33.6060,32.1110,36.4503,4.3393,-1.801464e+06
crossover_2nd_mesh,19.6900,20,44.9632,26.5218,25.1993,32.1110,36.4503,4.3393,-3.326643e+06
crossover_2nd_mesh,19.6900,21,29.9632,18.2127,16.7927,32.1110,36.4503,4.3393,-9.395021e+06
crossover_2nd_mesh,19.6900,22,14.9632,9.9099,8.3860,32.1110,36.4503,4.3393,-6.301273e+07
crossover_2nd_mesh,19.6900,23,-0.0368,4.3394,0.0206,32.1110,36.4503,4.3393,-2.930799e+08
midpoint,0.0000,0,-22.5000,14.0067,12.5832,32.0429,36.3731,4.3301,-2.039204e+07
midpoint,0.0000,1,-37.5000,22.3706,20.9721,32.0429,36.3731,4.3301,-5.294365e+06
midpoint,0.0000,2,-52.5000,30.5078,29.3609,32.0429,36.3731,4.3301,-2.528524e+06
midpoint,0.0000,3,-67.5000,38.1800,37.7497,32.0429,36.3731,4.3301,-1.551434e+06
midpoint,0.0000,4,-82.5000,45.2271,46.1385,32.0429,36.3731,4.3301,-1.083803e+06
midpoint,0.0000,5,-97.5000,51.5171,54.5273,32.0429,36.3731,4.3301,-8.233796e+05
midpoint,0.0000,6,-112.5000,56.9367,62.9162,32.0429,36.3731,4.3301,-6.653680e+05
midpoint,0.0000,7,-127.5000,61.3903,71.3050,32.0429,36.3731,4.3301,-5.654790e+05
midpoint,0.0000,8,-142.5000,64.8001,79.6938,32.0429,36.3731,4.3301,-5.023224e+05
midpoint,0.0000,9,-157.5000,67.1067,88.0826,32.0429,36.3731,4.3301,-4.647409e+05
midpoint,0.0000,10,-172.5000,68.2701,96.4715,32.0429,36.3731,4.3301,-4.470796e+05
midpoint,0.0000,11,172.5000,68.2701,96.4715,32.0429,36.3731,4.3301,-4.470037e+05
midpoint,0.0000,12,157.5000,67.1067,88.0826,32.0429,36.3731,4.3301,-4.645535e+05
midpoint,0.0000,13,142.5000,64.8001,79.6938,32.0429,36.3731,4.3301,-5.021926e+05
midpoint,0.0000,14,127.5000,61.3903,71.3050,32.0429,36.3731,4.3301,-5.655687e+05
midpoint,0.0000,15,112.5000,56.9367,62.9162,32.0429,36.3731,4.3301,-6.655079e+05
midpoint,0.0000,16,97.5000,51.5171,54.5273,32.0429,36.3731,4.3301,-8.236472e+05
midpoint,0.0000,17,82.5000,45.2271,46.1385,32.0429,36.3731,4.3301,-1.083890e+06
midpoint,0.0000,18,67.5000,38.1800,37.7497,32.0429,36.3731,4.3301,-1.551420e+06
midpoint,0.0000,19,52.5000,30.5078,29.3609,32.0429,36.3731,4.3301,-2.528568e+06
midpoint,0.0000,20,37.5000,22.3706,20.9721,32.0429,36.3731,4.3301,-5.294461e+06
midpoint,0.0000,21,22.5000,14.0067,12.5832,32.0429,36.3731,4.3301,-2.039219e+07
midpoint,0.0000,22,7.5000,6.2203,4.1944,32.0429,36.3731,4.3301,-1.737511e+08
midpoint,0.0000,23,-7.5000,6.2203,4.1944,32.0429,36.3731,4.3301,-1.737511e+08
quarter,29.8500,0,-11.2065,7.9883,6.2978,32.1992,36.5504,4.3512,-1.129326e+08
quarter,29.8500,1,-26.2065,16.1519,14.7276,32.1992,36.5504,4.3512,-1.436402e+07
quarter,29.8500,2,-41.2065,24.5331,23.1573,32.1992,36.5504,4.3512,-4.418369e+06
quarter,29.8500,3,-56.2065,32.6120,31.5870,32.1992,36.5504,4.3512,-2.244959e+06
quarter,29.8500,4,-71.2065,40.1799,40.0167,32.1992,36.5504,4.3512,-1.415750e+06
quarter,29.8500,5,-86.2065,47.0849,48.4465,32.1992,36.5504,4.3512,-1.005442e+06
quarter,29.8500,6,-101.2065,53.1993,56.8762,32.1992,36.5504,4.3512,-7.725405e+05
quarter,29.8500,7,-116.2065,58.4138,65.3059,32.1992,36.5504,4.3512,-6.298993e+05
quarter,29.8500,8,-131.2065,62.6366,73.7357,32.1992,36.5504,4.3512,-5.396007e+05
quarter,29.8500,9,-146.2065,65.7939,82.1654,32.1992,36.5504,4.3512,-4.827200e+05
quarter,29.8500,10,-161.2065,67.8308,90.5951,32.1992,36.5504,4.3512,-4.496201e+05
quarter,29.8500,11,-176.2065,68.7121,99.0248,32.1992,36.5504,4.3512,-4.355789e+05
quarter,29.8500,12,168.7935,68.4224,94.8589,32.1992,36.5504,4.3512,-4.384851e+05
quarter,29.8500,13,153.7935,66.9669,86.4292,32.1992,36.5504,4.3512,-4.589077e+05
quarter,29.8500,14,138.7935,64.3706,77.9994,32.1992,36.5504,4.3512,-4.996246e+05
quarter,29.8500,15,123.7935,60.6787,69.5697,32.1992,36.5504,4.3512,-5.669569e+05
quarter,29.8500,16,108.7935,55.9555,61.1400,32.1992,36.5504,4.3512,-6.730520e+05
quarter,29.8500,17,93.7935,50.2837,52.7103,32.1992,36.5504,4.3512,-8.419619e+05
quarter,29.8500,18,78.7935,43.7638,44.2805,32.1992,36.5504,4.3512,-1.124446e+06
quarter,29.8500,19,63.7935,36.5140,35.8508,32.1992,36.5504,4.3512,-1.645427e+06
quarter,29.8500,20,48.7935,28.6724,27.4211,32.1992,36.5504,4.3512,-2.794903e+06
quarter,29.8500,21,33.7935,20.4111,18.9914,32.1992,36.5504,4.3512,-6.532951e+06
quarter,29.8500,22,18.7935,12.0177,10.5616,32.1992,36.5504,4.3512,-3.317603e+07
quarter,29.8500,23,3.7935,4.9082,2.1319,32.1992,36.5504,4.3512,-2.509238e+08
midpoint_next_cell,39.9200,0,-7.4349,6.2465,4.1942,32.3219,36.6897,4.3678,-1.761237e+08
midpoint_next_cell,39.9200,1,-22.4349,14.0921,12.6560,32.3219,36.6897,4.3678,-2.075531e+07
midpoint_next_cell,39.9200,2,-37.4349,22.5289,21.1179,32.3219,36.6897,4.3678,-5.372362e+06
midpoint_next_cell,39.9200,3,-52.4349,30.7386,29.5797,32.3219,36.6897,4.3678,-2.561314e+06
midpoint_next_cell,39.9200,4,-67.4349,38.4800,38.0416,32.3219,36.6897,4.3678,-1.570653e+06
midpoint_next_cell,39.9200,5,-82.4349,45.5915,46.5034,32.3219,36.6897,4.3678,-1.096806e+06
midpoint_next_cell,39.9200,6,-97.4349,51.9398,54.9652,32.3219,36.6897,4.3678,-8.326541e+05
midpoint_next_cell,39.9200,7,-112.4349,57.4106,63.4271,32.3219,36.6897,4.3678,-6.727963e+05
midpoint_next_cell,39.9200,8,-127.4349,61.9074,71.8889,32.3219,36.6897,4.3678,-5.716440e+05
midpoint_next_cell,39.9200,9,-142.4349,65.3516,80.3508,32.3219,36.6897,4.3678,-5.076333e+05
midpoint_next_cell,39.9200,10,-157.4349,67.6832,88.8126,32.3219,36.6897,4.3678,-4.695465e+05
midpoint_next_cell,39.9200,11,-172.4349,68.8618,97.2745,32.3219,36.6897,4.3678,-4.516568e+05
midpoint_next_cell,39.9200,12,172.5651,68.8669,97.3479,32.3219,36.6897,4.3678,-4.516637e+05
midpoint_next_cell,39.9200,13,157.5651,67.6985,88.8861,32.3219,36.6897,4.3678,-4.694576e+05
midpoint_next_cell,39.9200,14,142.5651,65.3767,80.4243,32.3219,36.6897,4.3678,-5.074022e+05
midpoint_next_cell,39.9200,15,127.5651,61.9420,71.9624,32.3219,36.6897,4.3678,-5.712809e+05
midpoint_next_cell,39.9200,16,112.5651,57.4540,63.5006,32.3219,36.6897,4.3678,-6.721183e+05
midpoint_next_cell,39.9200,17,97.5651,51.9912,55.0387,32.3219,36.6897,4.3678,-8.315842e+05
midpoint_next_cell,39.9200,18,82.5651,45.6501,46.5769,32.3219,36.6897,4.3678,-1.094733e+06
midpoint_next_cell,39.9200,19,67.5651,38.5447,38.1150,32.3219,36.6897,4.3678,-1.566789e+06
midpoint_next_cell,39.9200,20,52.5651,30.8081,29.6532,32.3219,36.6897,4.3678,-2.552420e+06
midpoint_next_cell,39.9200,21,37.5651,22.6017,21.1914,32.3219,36.6897,4.3678,-5.339551e+06
midpoint_next_cell,39.9200,22,22.5651,14.1651,12.7295,32.3219,36.6897,4.3678,-2.047473e+07
midpoint_next_cell,39.9200,23,7.5651,6.3025,4.2677,32.3219,36.6897,4.3678,-1.736599e+08
three_quarter,49.9800,0,-3.6995,4.9249,2.0971,32.4791,36.8682,4.3891,-2.504102e+08
three_quarter,49.9800,1,-18.6995,12.0699,10.6001,32.4791,36.8682,4.3891,-3.347552e+07
three_quarter,49.9800,2,-33.6995,20.5354,19.1031,32.4791,36.8682,4.3891,-6.554253e+06
three_quarter,49.9800,3,-48.6995,28.8705,27.6061,32.4791,36.8682,4.3891,-2.791526e+06
three_quarter,49.9800,4,-63.6995,36.7835,36.1091,32.4791,36.8682,4.3891,-1.640473e+06
three_quarter,49.9800,5,-78.6995,44.1006,44.6121,32.4791,36.8682,4.3891,-1.120026e+06
three_quarter,49.9800,6,-93.6995,50.6821,53.1152,32.4791,36.8682,4.3891,-8.381522e+05
three_quarter,49.9800,7,-108.6995,56.4089,61.6182,32.4791,36.8682,4.3891,-6.695898e+05
three_quarter,49.9800,8,-123.6995,61.1794,70.1212,32.4791,36.8682,4.3891,-5.637983e+05
three_quarter,49.9800,9,-138.6995,64.9102,78.6242,32.4791,36.8682,4.3891,-4.966657e+05
three_quarter,49.9800,10,-153.6995,67.5361,87.1272,32.4791,36.8682,4.3891,-4.560533e+05
three_quarter,49.9800,11,-168.6995,69.0117,95.6302,32.4791,36.8682,4.3891,-4.355764e+05
three_quarter,49.9800,12,176.3005,69.3112,99.9389,32.4791,36.8682,4.3891,-4.325198e+05
three_quarter,49.9800,13,161.3005,68.4297,91.4359,32.4791,36.8682,4.3891,-4.464923e+05
three_quarter,49.9800,14,146.3005,66.3822,82.9329,32.4791,36.8682,4.3891,-4.792532e+05
three_quarter,49.9800,15,131.3005,63.2044,74.4299,32.4791,36.8682,4.3891,-5.356818e+05
three_quarter,49.9800,16,116.3005,58.9515,65.9269,32.4791,36.8682,4.3891,-6.252740e+05
three_quarter,49.9800,17,101.3005,53.6977,57.4239,32.4791,36.8682,4.3891,-7.667390e+05
three_quarter,49.9800,18,86.3005,47.5355,48.9209,32.4791,36.8682,4.3891,-9.977283e+05
three_quarter,49.9800,19,71.3005,40.5751,40.4179,32.4791,36.8682,4.3891,-1.404378e+06
three_quarter,49.9800,20,56.3005,32.9451,31.9149,32.4791,36.8682,4.3891,-2.225433e+06
three_quarter,49.9800,21,41.3005,24.7986,23.4119,32.4791,36.8682,4.3891,-4.374588e+06
three_quarter,49.9800,22,26.3005,16.3455,14.9089,32.4791,36.8682,4.3891,-1.416708e+07
three_quarter,49.9800,23,11.3005,8.1052,6.4059,32.4791,36.8682,4.3891,-1.105954e+08
three_eighths,44.7820,0,-5.6250,5.5348,3.1803,32.3935,36.7711,4.3775,-2.116655e+08
three_eighths,44.7820,1,-20.6250,13.1093,11.6609,32.3935,36.7711,4.3775,-2.552036e+07
three_eighths,44.7820,2,-35.6250,21.5643,20.1415,32.3935,36.7711,4.3775,-5.854026e+06
three_eighths,44.7820,3,-50.6250,29.8353,28.6221,32.3935,36.7711,4.3775,-2.671645e+06
three_eighths,44.7820,4,-65.6250,37.6599,37.1027,32.3935,36.7711,4.3775,-1.610535e+06
three_eighths,44.7820,5,-80.6250,44.8708,45.5833,32.3935,36.7711,4.3775,-1.114330e+06
three_eighths,44.7820,6,-95.6250,51.3319,54.0639,32.3935,36.7711,4.3775,-8.408221e+05
three_eighths,44.7820,7,-110.6250,56.9264,62.5445,32.3935,36.7711,4.3775,-6.761017e+05
three_eighths,44.7820,8,-125.6250,61.5555,71.0251,32.3935,36.7711,4.3775,-5.722770e+05
three_eighths,44.7820,9,-140.6250,65.1382,79.5058,32.3935,36.7711,4.3775,-5.064035e+05
three_eighths,44.7820,10,-155.6250,67.6121,87.9864,32.3935,36.7711,4.3775,-4.669031e+05
three_eighths,44.7820,11,-170.6250,68.9342,96.4670,32.3935,36.7711,4.3775,-4.477174e+05
three_eighths,44.7820,12,174.3750,69.0816,98.5871,32.3935,36.7711,4.3775,-4.463304e+05
three_eighths,44.7820,13,159.3750,68.0518,90.1065,32.3935,36.7711,4.3775,-4.624125e+05
three_eighths,44.7820,14,144.3750,65.8626,81.6259,32.3935,36.7711,4.3775,-4.982920e+05
three_eighths,44.7820,15,129.3750,62.5521,73.1453,32.3935,36.7711,4.3775,-5.591098e+05
three_eighths,44.7820,16,114.3750,58.1776,64.6646,32.3935,36.7711,4.3775,-6.554538e+05
three_eighths,44.7820,17,99.3750,52.8159,56.1840,32.3935,36.7711,4.3775,-8.076560e+05
three_eighths,44.7820,18,84.3750,46.5612,47.7034,32.3935,36.7711,4.3775,-1.057369e+06
three_eighths,44.7820,19,69.3750,39.5258,39.2228,32.3935,36.7711,4.3775,-1.501138e+06
three_eighths,44.7820,20,54.3750,31.8405,30.7422,32.3935,36.7711,4.3775,-2.412077e+06
three_eighths,44.7820,21,39.3750,23.6626,22.2616,32.3935,36.7711,4.3775,-4.884531e+06
three_eighths,44.7820,22,24.3750,15.2155,13.7810,32.3935,36.7711,4.3775,-1.709812e+07
three_eighths,44.7820,23,9.3750,7.1402,5.3004,32.3935,36.7711,4.3775,-1.411534e+08
1 # |E.E_w| at each anode surface, potential-fit recipe, annulus 0.30 mm, 6 orders
2 # arc_mm = r_anode * |d_az| ; gap_mm = r_cathode - r_anode
3 label,z_mm,anode,d_az_deg,sep_mm,arc_mm,r_a_mm,r_c_mm,gap_mm,dot_surf
4 crossover,19.7940,0,-14.9975,9.9284,8.4054,32.1117,36.4512,4.3394,-6.264028e+07
5 crossover,19.7940,1,-29.9975,18.2323,16.8123,32.1117,36.4512,4.3394,-9.357083e+06
6 crossover,19.7940,2,-44.9975,26.5410,25.2191,32.1117,36.4512,4.3394,-3.318036e+06
7 crossover,19.7940,3,-59.9975,34.4855,33.6259,32.1117,36.4512,4.3394,-1.798141e+06
8 crossover,19.7940,4,-74.9975,41.8790,42.0328,32.1117,36.4512,4.3394,-1.174901e+06
9 crossover,19.7940,5,-89.9975,48.5772,50.4396,32.1117,36.4512,4.3394,-8.545572e+05
10 crossover,19.7940,6,-104.9975,54.4578,58.8464,32.1117,36.4512,4.3394,-6.685716e+05
11 crossover,19.7940,7,-119.9975,59.4161,67.2533,32.1117,36.4512,4.3394,-5.535249e+05
12 crossover,19.7940,8,-134.9975,63.3651,75.6601,32.1117,36.4512,4.3394,-4.805962e+05
13 crossover,19.7940,9,-149.9975,66.2358,84.0669,32.1117,36.4512,4.3394,-4.354049e+05
14 crossover,19.7940,10,-164.9975,67.9785,92.4738,32.1117,36.4512,4.3394,-4.106824e+05
15 crossover,19.7940,11,-179.9975,68.5629,100.8806,32.1117,36.4512,4.3394,-4.028100e+05
16 crossover,19.7940,12,165.0025,67.9789,92.4766,32.1117,36.4512,4.3394,-4.106489e+05
17 crossover,19.7940,13,150.0025,66.2366,84.0697,32.1117,36.4512,4.3394,-4.353595e+05
18 crossover,19.7940,14,135.0025,63.3662,75.6629,32.1117,36.4512,4.3394,-4.805101e+05
19 crossover,19.7940,15,120.0025,59.4176,67.2561,32.1117,36.4512,4.3394,-5.534480e+05
20 crossover,19.7940,16,105.0025,54.4596,58.8492,32.1117,36.4512,4.3394,-6.685026e+05
21 crossover,19.7940,17,90.0025,48.5794,50.4424,32.1117,36.4512,4.3394,-8.544877e+05
22 crossover,19.7940,18,75.0025,41.8814,42.0356,32.1117,36.4512,4.3394,-1.174686e+06
23 crossover,19.7940,19,60.0025,34.4881,33.6287,32.1117,36.4512,4.3394,-1.797689e+06
24 crossover,19.7940,20,45.0025,26.5438,25.2219,32.1117,36.4512,4.3394,-3.316963e+06
25 crossover,19.7940,21,30.0025,18.2351,16.8151,32.1117,36.4512,4.3394,-9.351989e+06
26 crossover,19.7940,22,15.0025,9.9310,8.4082,32.1117,36.4512,4.3394,-6.258937e+07
27 crossover,19.7940,23,0.0025,4.3394,0.0014,32.1117,36.4512,4.3394,-2.930785e+08
28 crossover_2nd_mesh,19.6900,0,-15.0368,9.9491,8.4273,32.1110,36.4503,4.3393,-6.222104e+07
29 crossover_2nd_mesh,19.6900,1,-30.0368,18.2539,16.8339,32.1110,36.4503,4.3393,-9.314435e+06
30 crossover_2nd_mesh,19.6900,2,-45.0368,26.5618,25.2406,32.1110,36.4503,4.3393,-3.308520e+06
31 crossover_2nd_mesh,19.6900,3,-60.0368,34.5049,33.6472,32.1110,36.4503,4.3393,-1.794435e+06
32 crossover_2nd_mesh,19.6900,4,-75.0368,41.8966,42.0538,32.1110,36.4503,4.3393,-1.173097e+06
33 crossover_2nd_mesh,19.6900,5,-90.0368,48.5927,50.4605,32.1110,36.4503,4.3393,-8.535860e+05
34 crossover_2nd_mesh,19.6900,6,-105.0368,54.4708,58.8671,32.1110,36.4503,4.3393,-6.679819e+05
35 crossover_2nd_mesh,19.6900,7,-120.0368,59.4265,67.2738,32.1110,36.4503,4.3393,-5.531363e+05
36 crossover_2nd_mesh,19.6900,8,-135.0368,63.3726,75.6804,32.1110,36.4503,4.3393,-4.803347e+05
37 crossover_2nd_mesh,19.6900,9,-150.0368,66.2404,84.0871,32.1110,36.4503,4.3393,-4.352689e+05
38 crossover_2nd_mesh,19.6900,10,-165.0368,67.9800,92.4937,32.1110,36.4503,4.3393,-4.106183e+05
39 crossover_2nd_mesh,19.6900,11,179.9632,68.5614,100.8591,32.1110,36.4503,4.3393,-4.028197e+05
40 crossover_2nd_mesh,19.6900,12,164.9632,67.9743,92.4525,32.1110,36.4503,4.3393,-4.107492e+05
41 crossover_2nd_mesh,19.6900,13,149.9632,66.2290,84.0458,32.1110,36.4503,4.3393,-4.355214e+05
42 crossover_2nd_mesh,19.6900,14,134.9632,63.3558,75.6392,32.1110,36.4503,4.3393,-4.808003e+05
43 crossover_2nd_mesh,19.6900,15,119.9632,59.4046,67.2325,32.1110,36.4503,4.3393,-5.538755e+05
44 crossover_2nd_mesh,19.6900,16,104.9632,54.4442,58.8259,32.1110,36.4503,4.3393,-6.691537e+05
45 crossover_2nd_mesh,19.6900,17,89.9632,48.5617,50.4193,32.1110,36.4503,4.3393,-8.554925e+05
46 crossover_2nd_mesh,19.6900,18,74.9632,41.8619,42.0126,32.1110,36.4503,4.3393,-1.176564e+06
47 crossover_2nd_mesh,19.6900,19,59.9632,34.4672,33.6060,32.1110,36.4503,4.3393,-1.801464e+06
48 crossover_2nd_mesh,19.6900,20,44.9632,26.5218,25.1993,32.1110,36.4503,4.3393,-3.326643e+06
49 crossover_2nd_mesh,19.6900,21,29.9632,18.2127,16.7927,32.1110,36.4503,4.3393,-9.395021e+06
50 crossover_2nd_mesh,19.6900,22,14.9632,9.9099,8.3860,32.1110,36.4503,4.3393,-6.301273e+07
51 crossover_2nd_mesh,19.6900,23,-0.0368,4.3394,0.0206,32.1110,36.4503,4.3393,-2.930799e+08
52 midpoint,0.0000,0,-22.5000,14.0067,12.5832,32.0429,36.3731,4.3301,-2.039204e+07
53 midpoint,0.0000,1,-37.5000,22.3706,20.9721,32.0429,36.3731,4.3301,-5.294365e+06
54 midpoint,0.0000,2,-52.5000,30.5078,29.3609,32.0429,36.3731,4.3301,-2.528524e+06
55 midpoint,0.0000,3,-67.5000,38.1800,37.7497,32.0429,36.3731,4.3301,-1.551434e+06
56 midpoint,0.0000,4,-82.5000,45.2271,46.1385,32.0429,36.3731,4.3301,-1.083803e+06
57 midpoint,0.0000,5,-97.5000,51.5171,54.5273,32.0429,36.3731,4.3301,-8.233796e+05
58 midpoint,0.0000,6,-112.5000,56.9367,62.9162,32.0429,36.3731,4.3301,-6.653680e+05
59 midpoint,0.0000,7,-127.5000,61.3903,71.3050,32.0429,36.3731,4.3301,-5.654790e+05
60 midpoint,0.0000,8,-142.5000,64.8001,79.6938,32.0429,36.3731,4.3301,-5.023224e+05
61 midpoint,0.0000,9,-157.5000,67.1067,88.0826,32.0429,36.3731,4.3301,-4.647409e+05
62 midpoint,0.0000,10,-172.5000,68.2701,96.4715,32.0429,36.3731,4.3301,-4.470796e+05
63 midpoint,0.0000,11,172.5000,68.2701,96.4715,32.0429,36.3731,4.3301,-4.470037e+05
64 midpoint,0.0000,12,157.5000,67.1067,88.0826,32.0429,36.3731,4.3301,-4.645535e+05
65 midpoint,0.0000,13,142.5000,64.8001,79.6938,32.0429,36.3731,4.3301,-5.021926e+05
66 midpoint,0.0000,14,127.5000,61.3903,71.3050,32.0429,36.3731,4.3301,-5.655687e+05
67 midpoint,0.0000,15,112.5000,56.9367,62.9162,32.0429,36.3731,4.3301,-6.655079e+05
68 midpoint,0.0000,16,97.5000,51.5171,54.5273,32.0429,36.3731,4.3301,-8.236472e+05
69 midpoint,0.0000,17,82.5000,45.2271,46.1385,32.0429,36.3731,4.3301,-1.083890e+06
70 midpoint,0.0000,18,67.5000,38.1800,37.7497,32.0429,36.3731,4.3301,-1.551420e+06
71 midpoint,0.0000,19,52.5000,30.5078,29.3609,32.0429,36.3731,4.3301,-2.528568e+06
72 midpoint,0.0000,20,37.5000,22.3706,20.9721,32.0429,36.3731,4.3301,-5.294461e+06
73 midpoint,0.0000,21,22.5000,14.0067,12.5832,32.0429,36.3731,4.3301,-2.039219e+07
74 midpoint,0.0000,22,7.5000,6.2203,4.1944,32.0429,36.3731,4.3301,-1.737511e+08
75 midpoint,0.0000,23,-7.5000,6.2203,4.1944,32.0429,36.3731,4.3301,-1.737511e+08
76 quarter,29.8500,0,-11.2065,7.9883,6.2978,32.1992,36.5504,4.3512,-1.129326e+08
77 quarter,29.8500,1,-26.2065,16.1519,14.7276,32.1992,36.5504,4.3512,-1.436402e+07
78 quarter,29.8500,2,-41.2065,24.5331,23.1573,32.1992,36.5504,4.3512,-4.418369e+06
79 quarter,29.8500,3,-56.2065,32.6120,31.5870,32.1992,36.5504,4.3512,-2.244959e+06
80 quarter,29.8500,4,-71.2065,40.1799,40.0167,32.1992,36.5504,4.3512,-1.415750e+06
81 quarter,29.8500,5,-86.2065,47.0849,48.4465,32.1992,36.5504,4.3512,-1.005442e+06
82 quarter,29.8500,6,-101.2065,53.1993,56.8762,32.1992,36.5504,4.3512,-7.725405e+05
83 quarter,29.8500,7,-116.2065,58.4138,65.3059,32.1992,36.5504,4.3512,-6.298993e+05
84 quarter,29.8500,8,-131.2065,62.6366,73.7357,32.1992,36.5504,4.3512,-5.396007e+05
85 quarter,29.8500,9,-146.2065,65.7939,82.1654,32.1992,36.5504,4.3512,-4.827200e+05
86 quarter,29.8500,10,-161.2065,67.8308,90.5951,32.1992,36.5504,4.3512,-4.496201e+05
87 quarter,29.8500,11,-176.2065,68.7121,99.0248,32.1992,36.5504,4.3512,-4.355789e+05
88 quarter,29.8500,12,168.7935,68.4224,94.8589,32.1992,36.5504,4.3512,-4.384851e+05
89 quarter,29.8500,13,153.7935,66.9669,86.4292,32.1992,36.5504,4.3512,-4.589077e+05
90 quarter,29.8500,14,138.7935,64.3706,77.9994,32.1992,36.5504,4.3512,-4.996246e+05
91 quarter,29.8500,15,123.7935,60.6787,69.5697,32.1992,36.5504,4.3512,-5.669569e+05
92 quarter,29.8500,16,108.7935,55.9555,61.1400,32.1992,36.5504,4.3512,-6.730520e+05
93 quarter,29.8500,17,93.7935,50.2837,52.7103,32.1992,36.5504,4.3512,-8.419619e+05
94 quarter,29.8500,18,78.7935,43.7638,44.2805,32.1992,36.5504,4.3512,-1.124446e+06
95 quarter,29.8500,19,63.7935,36.5140,35.8508,32.1992,36.5504,4.3512,-1.645427e+06
96 quarter,29.8500,20,48.7935,28.6724,27.4211,32.1992,36.5504,4.3512,-2.794903e+06
97 quarter,29.8500,21,33.7935,20.4111,18.9914,32.1992,36.5504,4.3512,-6.532951e+06
98 quarter,29.8500,22,18.7935,12.0177,10.5616,32.1992,36.5504,4.3512,-3.317603e+07
99 quarter,29.8500,23,3.7935,4.9082,2.1319,32.1992,36.5504,4.3512,-2.509238e+08
100 midpoint_next_cell,39.9200,0,-7.4349,6.2465,4.1942,32.3219,36.6897,4.3678,-1.761237e+08
101 midpoint_next_cell,39.9200,1,-22.4349,14.0921,12.6560,32.3219,36.6897,4.3678,-2.075531e+07
102 midpoint_next_cell,39.9200,2,-37.4349,22.5289,21.1179,32.3219,36.6897,4.3678,-5.372362e+06
103 midpoint_next_cell,39.9200,3,-52.4349,30.7386,29.5797,32.3219,36.6897,4.3678,-2.561314e+06
104 midpoint_next_cell,39.9200,4,-67.4349,38.4800,38.0416,32.3219,36.6897,4.3678,-1.570653e+06
105 midpoint_next_cell,39.9200,5,-82.4349,45.5915,46.5034,32.3219,36.6897,4.3678,-1.096806e+06
106 midpoint_next_cell,39.9200,6,-97.4349,51.9398,54.9652,32.3219,36.6897,4.3678,-8.326541e+05
107 midpoint_next_cell,39.9200,7,-112.4349,57.4106,63.4271,32.3219,36.6897,4.3678,-6.727963e+05
108 midpoint_next_cell,39.9200,8,-127.4349,61.9074,71.8889,32.3219,36.6897,4.3678,-5.716440e+05
109 midpoint_next_cell,39.9200,9,-142.4349,65.3516,80.3508,32.3219,36.6897,4.3678,-5.076333e+05
110 midpoint_next_cell,39.9200,10,-157.4349,67.6832,88.8126,32.3219,36.6897,4.3678,-4.695465e+05
111 midpoint_next_cell,39.9200,11,-172.4349,68.8618,97.2745,32.3219,36.6897,4.3678,-4.516568e+05
112 midpoint_next_cell,39.9200,12,172.5651,68.8669,97.3479,32.3219,36.6897,4.3678,-4.516637e+05
113 midpoint_next_cell,39.9200,13,157.5651,67.6985,88.8861,32.3219,36.6897,4.3678,-4.694576e+05
114 midpoint_next_cell,39.9200,14,142.5651,65.3767,80.4243,32.3219,36.6897,4.3678,-5.074022e+05
115 midpoint_next_cell,39.9200,15,127.5651,61.9420,71.9624,32.3219,36.6897,4.3678,-5.712809e+05
116 midpoint_next_cell,39.9200,16,112.5651,57.4540,63.5006,32.3219,36.6897,4.3678,-6.721183e+05
117 midpoint_next_cell,39.9200,17,97.5651,51.9912,55.0387,32.3219,36.6897,4.3678,-8.315842e+05
118 midpoint_next_cell,39.9200,18,82.5651,45.6501,46.5769,32.3219,36.6897,4.3678,-1.094733e+06
119 midpoint_next_cell,39.9200,19,67.5651,38.5447,38.1150,32.3219,36.6897,4.3678,-1.566789e+06
120 midpoint_next_cell,39.9200,20,52.5651,30.8081,29.6532,32.3219,36.6897,4.3678,-2.552420e+06
121 midpoint_next_cell,39.9200,21,37.5651,22.6017,21.1914,32.3219,36.6897,4.3678,-5.339551e+06
122 midpoint_next_cell,39.9200,22,22.5651,14.1651,12.7295,32.3219,36.6897,4.3678,-2.047473e+07
123 midpoint_next_cell,39.9200,23,7.5651,6.3025,4.2677,32.3219,36.6897,4.3678,-1.736599e+08
124 three_quarter,49.9800,0,-3.6995,4.9249,2.0971,32.4791,36.8682,4.3891,-2.504102e+08
125 three_quarter,49.9800,1,-18.6995,12.0699,10.6001,32.4791,36.8682,4.3891,-3.347552e+07
126 three_quarter,49.9800,2,-33.6995,20.5354,19.1031,32.4791,36.8682,4.3891,-6.554253e+06
127 three_quarter,49.9800,3,-48.6995,28.8705,27.6061,32.4791,36.8682,4.3891,-2.791526e+06
128 three_quarter,49.9800,4,-63.6995,36.7835,36.1091,32.4791,36.8682,4.3891,-1.640473e+06
129 three_quarter,49.9800,5,-78.6995,44.1006,44.6121,32.4791,36.8682,4.3891,-1.120026e+06
130 three_quarter,49.9800,6,-93.6995,50.6821,53.1152,32.4791,36.8682,4.3891,-8.381522e+05
131 three_quarter,49.9800,7,-108.6995,56.4089,61.6182,32.4791,36.8682,4.3891,-6.695898e+05
132 three_quarter,49.9800,8,-123.6995,61.1794,70.1212,32.4791,36.8682,4.3891,-5.637983e+05
133 three_quarter,49.9800,9,-138.6995,64.9102,78.6242,32.4791,36.8682,4.3891,-4.966657e+05
134 three_quarter,49.9800,10,-153.6995,67.5361,87.1272,32.4791,36.8682,4.3891,-4.560533e+05
135 three_quarter,49.9800,11,-168.6995,69.0117,95.6302,32.4791,36.8682,4.3891,-4.355764e+05
136 three_quarter,49.9800,12,176.3005,69.3112,99.9389,32.4791,36.8682,4.3891,-4.325198e+05
137 three_quarter,49.9800,13,161.3005,68.4297,91.4359,32.4791,36.8682,4.3891,-4.464923e+05
138 three_quarter,49.9800,14,146.3005,66.3822,82.9329,32.4791,36.8682,4.3891,-4.792532e+05
139 three_quarter,49.9800,15,131.3005,63.2044,74.4299,32.4791,36.8682,4.3891,-5.356818e+05
140 three_quarter,49.9800,16,116.3005,58.9515,65.9269,32.4791,36.8682,4.3891,-6.252740e+05
141 three_quarter,49.9800,17,101.3005,53.6977,57.4239,32.4791,36.8682,4.3891,-7.667390e+05
142 three_quarter,49.9800,18,86.3005,47.5355,48.9209,32.4791,36.8682,4.3891,-9.977283e+05
143 three_quarter,49.9800,19,71.3005,40.5751,40.4179,32.4791,36.8682,4.3891,-1.404378e+06
144 three_quarter,49.9800,20,56.3005,32.9451,31.9149,32.4791,36.8682,4.3891,-2.225433e+06
145 three_quarter,49.9800,21,41.3005,24.7986,23.4119,32.4791,36.8682,4.3891,-4.374588e+06
146 three_quarter,49.9800,22,26.3005,16.3455,14.9089,32.4791,36.8682,4.3891,-1.416708e+07
147 three_quarter,49.9800,23,11.3005,8.1052,6.4059,32.4791,36.8682,4.3891,-1.105954e+08
148 three_eighths,44.7820,0,-5.6250,5.5348,3.1803,32.3935,36.7711,4.3775,-2.116655e+08
149 three_eighths,44.7820,1,-20.6250,13.1093,11.6609,32.3935,36.7711,4.3775,-2.552036e+07
150 three_eighths,44.7820,2,-35.6250,21.5643,20.1415,32.3935,36.7711,4.3775,-5.854026e+06
151 three_eighths,44.7820,3,-50.6250,29.8353,28.6221,32.3935,36.7711,4.3775,-2.671645e+06
152 three_eighths,44.7820,4,-65.6250,37.6599,37.1027,32.3935,36.7711,4.3775,-1.610535e+06
153 three_eighths,44.7820,5,-80.6250,44.8708,45.5833,32.3935,36.7711,4.3775,-1.114330e+06
154 three_eighths,44.7820,6,-95.6250,51.3319,54.0639,32.3935,36.7711,4.3775,-8.408221e+05
155 three_eighths,44.7820,7,-110.6250,56.9264,62.5445,32.3935,36.7711,4.3775,-6.761017e+05
156 three_eighths,44.7820,8,-125.6250,61.5555,71.0251,32.3935,36.7711,4.3775,-5.722770e+05
157 three_eighths,44.7820,9,-140.6250,65.1382,79.5058,32.3935,36.7711,4.3775,-5.064035e+05
158 three_eighths,44.7820,10,-155.6250,67.6121,87.9864,32.3935,36.7711,4.3775,-4.669031e+05
159 three_eighths,44.7820,11,-170.6250,68.9342,96.4670,32.3935,36.7711,4.3775,-4.477174e+05
160 three_eighths,44.7820,12,174.3750,69.0816,98.5871,32.3935,36.7711,4.3775,-4.463304e+05
161 three_eighths,44.7820,13,159.3750,68.0518,90.1065,32.3935,36.7711,4.3775,-4.624125e+05
162 three_eighths,44.7820,14,144.3750,65.8626,81.6259,32.3935,36.7711,4.3775,-4.982920e+05
163 three_eighths,44.7820,15,129.3750,62.5521,73.1453,32.3935,36.7711,4.3775,-5.591098e+05
164 three_eighths,44.7820,16,114.3750,58.1776,64.6646,32.3935,36.7711,4.3775,-6.554538e+05
165 three_eighths,44.7820,17,99.3750,52.8159,56.1840,32.3935,36.7711,4.3775,-8.076560e+05
166 three_eighths,44.7820,18,84.3750,46.5612,47.7034,32.3935,36.7711,4.3775,-1.057369e+06
167 three_eighths,44.7820,19,69.3750,39.5258,39.2228,32.3935,36.7711,4.3775,-1.501138e+06
168 three_eighths,44.7820,20,54.3750,31.8405,30.7422,32.3935,36.7711,4.3775,-2.412077e+06
169 three_eighths,44.7820,21,39.3750,23.6626,22.2616,32.3935,36.7711,4.3775,-4.884531e+06
170 three_eighths,44.7820,22,24.3750,15.2155,13.7810,32.3935,36.7711,4.3775,-1.709812e+07
171 three_eighths,44.7820,23,9.3750,7.1402,5.3004,32.3935,36.7711,4.3775,-1.411534e+08

View File

@ -0,0 +1,31 @@
solved slices: azimuth[deg] -> |E.E_w| [V^2/m^2]
0.020 2.9308e+08
3.700 2.5041e+08
3.793 2.5092e+08
5.625 2.1167e+08
7.500 1.7432e+08
crossover / midpoint, predicted c/a ratio : 1.681
scale fitted at z = +19.7248 mm : s = 3.0923e-09 (c/a = 0.9063 there)
predicted points
z[mm] |d_az| c/a c/(a+c)
-39.79 7.50 0.539 0.3503
-29.76 3.75 0.775 0.4367
-19.72 0.00 0.906 0.4754
-9.86 3.75 0.775 0.4367
0.00 7.50 0.539 0.3503
9.86 3.75 0.775 0.4367
19.72 0.00 0.906 0.4754
29.76 3.75 0.775 0.4367
39.79 7.50 0.539 0.3503
49.82 3.75 0.775 0.4367
59.85 0.00 0.906 0.4754
image : /home/vsitaraman/Dissertation_ch5/defense/figures/cfrac.png 1800x1238
red verticals : [ 390. 719.5 1043.5 1373. ]
x fit : px = 8.21194 * z + 881.500 (residuals [ 0.01 -0.02 0.02 -0.01] px)
frame rows : top 36 (y=0.80), bottom 1070 (y=0.00)
x range of frame : -107.34 .. 111.85 mm
y-axis title: set to 'cathode charge fraction', 55x589 px at x=40, centred on y=553
x-axis title: set to 'PC z [mm]', 273x55 px, centred on x=936.5 at y=1153
wrote /home/vsitaraman/Dissertation_ch5/defense/figures/cfrac_pred.png (1800x1238)

View File

@ -0,0 +1,8 @@
crossover z= 19.7940 nearest anode 0.003 deg, |E.E_w| 2.9308e+08
crossover_2nd_mesh z= 19.6900 nearest anode 0.037 deg, |E.E_w| 2.9308e+08
midpoint z= 0.0000 nearest anode 7.500 deg, |E.E_w| 1.7375e+08
quarter z= 29.8500 nearest anode 3.794 deg, |E.E_w| 2.5092e+08
midpoint_next_cell z= 39.9200 nearest anode 7.435 deg, |E.E_w| 1.7612e+08
three_quarter z= 49.9800 nearest anode 3.699 deg, |E.E_w| 2.5041e+08
three_eighths z= 44.7820 nearest anode 5.625 deg, |E.E_w| 2.1167e+08
wrote function_map.csv, 168 rows

View File

@ -0,0 +1,9 @@
# potential-fit recipe, annulus 0.30 mm, 6 azimuthal orders
z_mm,d_az_deg,dot_surf,label
19.7940,0.0025,-2.930785e+08,crossover (archived)
19.6900,0.0368,-2.930799e+08,crossover, 2nd mesh (archived)
0.0000,7.5000,-1.737511e+08,midpoint (archived)
29.8500,3.7935,-2.509238e+08,quarter (new)
39.9200,7.5000,-1.748918e+08,midpoint, next cell (new)
49.9800,3.6995,-2.504102e+08,three quarters (new)
44.7820,5.6250,-2.116655e+08,three eighths (new)
1 # potential-fit recipe, annulus 0.30 mm, 6 azimuthal orders
2 z_mm,d_az_deg,dot_surf,label
3 19.7940,0.0025,-2.930785e+08,crossover (archived)
4 19.6900,0.0368,-2.930799e+08,crossover, 2nd mesh (archived)
5 0.0000,7.5000,-1.737511e+08,midpoint (archived)
6 29.8500,3.7935,-2.509238e+08,quarter (new)
7 39.9200,7.5000,-1.748918e+08,midpoint, next cell (new)
8 49.9800,3.6995,-2.504102e+08,three quarters (new)
9 44.7820,5.6250,-2.116655e+08,three eighths (new)

View File

@ -0,0 +1,77 @@
# Raw Elmer solution kept for z = 44.7820 mm
Moved here on 2026-10-28 from the working directory `~/anasen_fem_cfrac_2026-10-28_B`,
which was then deleted. This is the one solve whose **raw solution** was kept, so that a
quantity the cfrac study did not export can still be recovered without re-solving.
Re-meshing and re-solving this configuration costs about an hour, almost all of it meshing
10.8 M nodes. Re-running a postprocessor on the solution kept here costs minutes.
## What this slice is
z = 44.7820 mm, the **three-eighths point** of the cell. It was not an input to the
Lorentzian fit: the fit was made on the crossover, quarter and midpoint alone, predicted
2.117e8 for this slice, and solving it returned 2.1167e8, a difference of 0.015%. It is the
blind test of the functional form in `../cfrac_pred_method.md`, section 4.
Relative azimuth 5.625 deg, anode-cathode gap 5.535 mm, |E.E_w| = 2.1167e8 V^2/m^2 at the
fired anode. `anode_dot.csv` holds all 24 anodes for this slice.
## Files
| | |
|---|---|
| `wires2d/elstatics.result` | the physical solve, anodes biased, everything else grounded |
| `wires2d/elstatics_weight.result` | the Ramo weighting solve, one cathode at 1 V |
| `wires2d/mesh.*`, `wires2d/entities.sif` | the ElmerGrid mesh these were solved on |
| `wires2d.sif`, `wires2d_weight.sif` | the two solver input files |
| `wires_gmsh2d_bc.py` | regenerates `wires2d.msh` for this slice |
| `geometry.py`, `probe_fields.py` | the wire placement and the node-recipe probe |
| `elmer*.log`, `elmergrid.log` | what the run did |
| `anode_dot.csv` | the probe output, 24 anodes |
A `.result` is only nodal values; it is unreadable without the mesh it was solved on, which
is why `mesh.*` is here and must stay with it.
**Not kept.** The two `elstatics*.ep` (3.4 GB) are the same solutions in the legacy
ElmerPost format, and `wires2d.msh` (805 MB) is the Gmsh source that `mesh.*` was built
from and that `wires_gmsh2d_bc.py` regenerates.
**The derived VTUs are elsewhere and are what the analysis actually reads:**
`../../wires2d/vtu_files/elfield_{anasen,weight}_14_44.7820.vtu`.
## Reusing it
To run another postprocessor without re-solving, point a sif at this mesh and restart from
the stored solution, roughly:
```
Header
Mesh DB "." "wires2d"
End
Simulation
Restart File = "elstatics.result"
Restart Position = 0
End
```
then add the solver you want. **Untested** -- nothing has been restarted from these files
yet, so treat the restart block as the documented shape rather than a verified recipe, and
check the first field it gives you against `anode_dot.csv` or the archived VTU before
trusting a new quantity.
One caveat carried over from the method doc: do **not** take the surface field from Elmer's
nodal `electric field` array. `FluxSolver` recovers the gradient element by element and
spikes on degenerate elements -- on these newer meshes about 960 nodes exceed 1e6 V/m where
the archived meshes have none. The potential is unaffected, and `surface_field.py` in the
analysis repo fits it harmonically instead.
## The two solves not kept
`~/anasen_fem_cfrac_2026-10-28` held z = 19.7940 (the crossover re-solve, the one whose
nodal recipe returned -1.5e12 against an archived -2.57e8) and
`~/anasen_fem_cfrac_2026-10-28_A` held z = 29.8500 (the quarter point). Both were deleted
with their folders; their VTUs are archived as indices 11 and 12.
The code that reads any of this is `scratch/cfrac_fem_pred_2026-10-28/` in the analysis
repository.

View File

@ -0,0 +1,25 @@
z_mm,anode,d_az_deg,nodes,dot_min,dot_mean,dist_mm
44.7820,0,-5.6250,130,-6.412815e+11,-5.725599e+09,5.5348
44.7820,23,9.3750,141,-5.458907e+09,-1.617053e+08,7.1402
44.7820,1,-20.6250,132,-1.758049e+11,-1.426033e+09,13.1093
44.7820,22,24.3750,143,-1.436395e+10,-1.844563e+08,15.2155
44.7820,2,-35.6250,131,-1.158139e+08,-5.139516e+06,21.5643
44.7820,21,39.3750,133,-1.207014e+09,-1.980558e+07,23.6626
44.7820,3,-50.6250,132,-9.650451e+07,-4.160549e+06,29.8353
44.7820,20,54.3750,133,-4.780039e+07,-2.048480e+06,31.8405
44.7820,4,-65.6250,139,-1.584056e+09,-2.129574e+07,37.6599
44.7820,19,69.3750,132,-8.705723e+10,-7.365464e+08,39.5258
44.7820,5,-80.6250,140,-3.382874e+07,-1.308908e+06,44.8708
44.7820,18,84.3750,130,-3.284999e+08,-3.913803e+06,46.5612
44.7820,6,-95.6250,132,-4.616585e+08,-4.135442e+06,51.3319
44.7820,17,99.3750,141,-2.609670e+07,-8.311030e+05,52.8159
44.7820,7,-110.6250,134,-4.229769e+10,-3.193509e+08,56.9264
44.7820,16,114.3750,139,-8.731587e+08,-6.853938e+06,58.1776
44.7820,8,-125.6250,129,-1.169752e+07,-4.738091e+05,61.5555
44.7820,15,129.3750,130,-2.620801e+09,-2.464152e+07,62.5521
44.7820,9,-140.6250,130,-2.939267e+10,-2.300810e+08,65.1382
44.7820,14,144.3750,133,-1.080835e+07,-4.263347e+05,65.8626
44.7820,10,-155.6250,134,-4.783587e+08,-3.926604e+06,67.6121
44.7820,13,159.3750,132,-5.782822e+08,-5.730639e+06,68.0518
44.7820,11,-170.6250,140,-2.061392e+07,-5.902745e+05,68.9342
44.7820,12,174.3750,130,-1.633216e+08,-2.588149e+06,69.0816
1 z_mm anode d_az_deg nodes dot_min dot_mean dist_mm
2 44.7820 0 -5.6250 130 -6.412815e+11 -5.725599e+09 5.5348
3 44.7820 23 9.3750 141 -5.458907e+09 -1.617053e+08 7.1402
4 44.7820 1 -20.6250 132 -1.758049e+11 -1.426033e+09 13.1093
5 44.7820 22 24.3750 143 -1.436395e+10 -1.844563e+08 15.2155
6 44.7820 2 -35.6250 131 -1.158139e+08 -5.139516e+06 21.5643
7 44.7820 21 39.3750 133 -1.207014e+09 -1.980558e+07 23.6626
8 44.7820 3 -50.6250 132 -9.650451e+07 -4.160549e+06 29.8353
9 44.7820 20 54.3750 133 -4.780039e+07 -2.048480e+06 31.8405
10 44.7820 4 -65.6250 139 -1.584056e+09 -2.129574e+07 37.6599
11 44.7820 19 69.3750 132 -8.705723e+10 -7.365464e+08 39.5258
12 44.7820 5 -80.6250 140 -3.382874e+07 -1.308908e+06 44.8708
13 44.7820 18 84.3750 130 -3.284999e+08 -3.913803e+06 46.5612
14 44.7820 6 -95.6250 132 -4.616585e+08 -4.135442e+06 51.3319
15 44.7820 17 99.3750 141 -2.609670e+07 -8.311030e+05 52.8159
16 44.7820 7 -110.6250 134 -4.229769e+10 -3.193509e+08 56.9264
17 44.7820 16 114.3750 139 -8.731587e+08 -6.853938e+06 58.1776
18 44.7820 8 -125.6250 129 -1.169752e+07 -4.738091e+05 61.5555
19 44.7820 15 129.3750 130 -2.620801e+09 -2.464152e+07 62.5521
20 44.7820 9 -140.6250 130 -2.939267e+10 -2.300810e+08 65.1382
21 44.7820 14 144.3750 133 -1.080835e+07 -4.263347e+05 65.8626
22 44.7820 10 -155.6250 134 -4.783587e+08 -3.926604e+06 67.6121
23 44.7820 13 159.3750 132 -5.782822e+08 -5.730639e+06 68.0518
24 44.7820 11 -170.6250 140 -2.061392e+07 -5.902745e+05 68.9342
25 44.7820 12 174.3750 130 -1.633216e+08 -2.588149e+06 69.0816

View File

@ -0,0 +1,882 @@
ELMER SOLVER (v 26.2) STARTED AT: 2026/10/28 09:45:04
ParCommInit: Initialize #PEs: 1
MAIN: OMP_NUM_THREADS not set. Using only 1 thread per task.
MAIN:
MAIN: =============================================================
MAIN: ElmerSolver finite element software, Welcome!
MAIN: This program is free software licensed under (L)GPL
MAIN: Copyright April 1st 1995 -> , CSC - IT Center for Science Ltd.
MAIN: Repository https://www.github.org/elmerCSC/elmerfem
MAIN: Homepage https://www.elmerfem.org/, Email elmeradm@csc.fi
MAIN: Version: 26.2-unknown (Rev: unknown, Compiled: 2026-10-16)
MAIN: Running one task without MPI parallelization.
MAIN: Running with just one thread per task.
MAIN: HYPRE library linked in.
MAIN: MUMPS library linked in.
MAIN: Lua interpreter linked in.
MAIN: =============================================================
MAIN:
MAIN:
MAIN: -------------------------------------
MAIN: Reading Model: wires2d.sif
LoadInputFile: Scanning input file: wires2d.sif
LoadInputFile: Scanning only size info
LoadInputFile: First time visiting
LoadInputFile: Reading base load of sif file
LoadInputFile: Loading input file: wires2d.sif
LoadInputFile: Reading base load of sif file
CheckKeyword: Unlisted keyword: [calculate vectors] in section: [solver 1]
CheckKeyword: Unlisted keyword: [calculate vectors] in section: [solver 2]
LoadInputFile: Number of BCs: 7
LoadInputFile: Number of Body Forces: 0
LoadInputFile: Number of Initial Conditions: 0
LoadInputFile: Number of Materials: 1
LoadInputFile: Number of Equations: 1
LoadInputFile: Number of Solvers: 4
LoadInputFile: Number of Bodies: 1
Loading user function library: [StatElecSolve]...[StatElecSolver_Init0]
Loading user function library: [FluxSolver]...[FluxSolver_Init0]
Loading user function library: [FluxSolver]...[FluxSolver_Init0]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init0]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init0]
Loading user function library: [SaveData]...[SaveScalars_Init0]
Loading user function library: [SaveData]...[SaveScalars_Init0]
LoadMesh: Loading serial mesh!
ElmerMeshReader: Performing step: 1
ElmerMeshReader: Base mesh name: ./wires2d
ReadHeaderFile: Reading header info from file: ./wires2d/mesh.header
InitializeMesh: Number of nodes in mesh: 10765324
InitializeMesh: Number of bulk elements in mesh: 5382347
InitializeMesh: Number of boundary elements in mesh: 4640
InitializeMesh: Initial number of max element nodes: 6
ElmerMeshReader: Performing step: 2
ReadNodesFile: Reading nodes from file: ./wires2d/mesh.nodes
SetMeshDimension: Dimension of mesh is: 2
SetMeshDimension: Max dimension of mesh is: 2
MapCoordinates: Scaling coordinates: 1.000E-03 1.000E-03 1.000E+00
ElmerMeshReader: Performing step: 3
ReadElementsFile: Reading bulk elements from file: ./wires2d/mesh.elements
ElmerMeshReader: Performing step: 4
ReadBoundaryFile: Reading boundary elements from file: ./wires2d/mesh.boundary
PermuteNodeNumbering: Performing node mapping
MapBodiesAndBCs: Remapping bodies
MapBodiesAndBCs: Minimum initial body index: 13
MapBodiesAndBCs: Maximum initial body index: 13
MapBodiesAndBCs: Remapping boundaries
MapBodiesAndBCs: Minimum initial boundary index: 1
MapBodiesAndBCs: Maximum initial boundary index: 40
ElmerMeshReader: Performing step: 5
ElmerMeshReader: Performing step: 6
LoadMesh: Loading mesh done
PrepareMesh: Preparing mesh for the future
LoadMesh: Preparing mesh done
LoadMesh: Elapsed REAL time: 14.8571 (s)
MeshStabParams: Computing stabilization parameters
MeshStabParams: Elapsed REAL time: 2.2454 (s)
MAIN: -------------------------------------
AddMeshCoordinates: Setting mesh coordinates and time
AddSolvers: Setting up 4 solvers
AddSolvers: Setting up solver 1: electrostatics
AddEquationBasics: Using procedure: StatElecSolve StatElecSolver
AddEquationBasics: Setting up solver: electrostatics
Loading user function library: [StatElecSolve]...[StatElecSolver_Init]
Loading user function library: [StatElecSolve]...[StatElecSolver_bulk]
Loading user function library: [StatElecSolve]...[StatElecSolver_bulk]
Loading user function library: [StatElecSolve]...[StatElecSolver]
AddEquationBasics: Creating standard variable: potential
OptimizeBandwidth: ---------------------------------------------------------
OptimizeBandwidth: Computing matrix structure for: electrostatics
OptimizeBandwidth: Initial bandwidth for electrostatics: 10752353
OptimizeBandwidth: Optimized bandwidth for electrostatics: 20840
OptimizeBandwidth: ---------------------------------------------------------
AddSolvers: Setting up solver 2: electric field
AddEquationBasics: Using procedure: FluxSolver FluxSolver
AddEquationBasics: Setting up solver: electric field
Loading user function library: [FluxSolver]...[FluxSolver_Init]
WARNING:: FluxSolver_init: No field computation requested, setting > Calculate Flux = True <
FluxSolver_init: Saving flux to: electric field Flux
Loading user function library: [FluxSolver]...[FluxSolver_bulk]
Loading user function library: [FluxSolver]...[FluxSolver_bulk]
Loading user function library: [FluxSolver]...[FluxSolver]
AddEquationBasics: Creating standard variable: electric field_temp
OptimizeBandwidth: ---------------------------------------------------------
OptimizeBandwidth: Computing matrix structure for: electric field
OptimizeBandwidth: Initial bandwidth for electric field: 10752353
OptimizeBandwidth: Optimized bandwidth for electric field: 20840
OptimizeBandwidth: ---------------------------------------------------------
AddSolvers: Setting up solver 3: result output
AddEquationBasics: Using procedure: ResultOutputSolve ResultOutputSolver
AddEquationBasics: Setting up solver: result output
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_bulk]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_bulk]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver]
AddSolvers: Setting up solver 4: savescalars
AddEquationBasics: Using procedure: SaveData SaveScalars
AddEquationBasics: Setting up solver: savescalars
Loading user function library: [SaveData]...[SaveScalars_Init]
Loading user function library: [SaveData]...[SaveScalars_bulk]
Loading user function library: [SaveData]...[SaveScalars_bulk]
Loading user function library: [SaveData]...[SaveScalars]
AddTimeEtc: Setting time and other global variables
MAIN: Random seed initialized to: 314159265
SetInitialConditions: Setting up initial conditions (if any)
MAIN: Number of timesteps to be saved: 1
MAIN:
MAIN: -------------------------------------
MAIN: Steady state iteration: 1
MAIN: -------------------------------------
MAIN:
SingleSolver: Attempting to call solver: 1
SingleSolver: Solver Equation string is: electrostatics
StatElecSolver: ------------------------------------------------
StatElecSolver: Solving static electric field for insulators
StatElecSolver: Permittivity Of Vacuum = 8.854200E-12 (set explicitly in Constants)
DefaultStart: Starting solver: electrostatics
StatElecSolver: Performing non-vectorized bulk element assembly
StatElecSolverBulkAssembly: Elapsed REAL time: 36.5859 (s)
StatElecSolver: Assembly of boundary colour: 1
StatElecSolverBCAssembly: Elapsed REAL time: 0.0105 (s)
DefUtils::DefaultDirichletBCs: Setting Dirichlet boundary conditions
EnforceDirichletConditions: Enforcing total of 9280 Dirichlet conditions.
EnforceDirichletConditions: Applying Dirichlet conditions using scaled diagonal
ScaleLinearSystem: Creating > DiagScaling < vector of size 10765324
EnforceDirichletConditions: Dirichlet conditions enforced for dofs: 9280
DefaultSolve: Solving linear system with default routines
SolveSystem: Solving linear system
SolveLinearSystem: Assuming real valued linear system
SolveLinearSystem: Assuming serial linear system
ScaleLinearSystem: Creating > DiagScaling < vector of size 10765324
SolveLinearSystem: Linear System Preconditioning: ilu1
Prec0-ilu1: Elapsed REAL time: 0.0000 (s)
SolveLinearSystem: Serial linear System Solver: iterative
IterSolver: Using iterative method: cg
CRS_IncompleteLU: ILU(1) (Real), Performing Factorization:
CRS_IncompleteLU: Allocated LU matrix of size: 166400948
CRS_IncompleteLU: ILU(1) (Real), NOF nonzeros: 166400949
CRS_IncompleteLU: ILU(1) (Real), filling (%) : 134
CRS_IncompleteLU: ILU(1) (Real), Factorization time (s): 138.74
Prec-ilu1: Elapsed REAL time: 140.1287 (s)
1 0.5172E-01
2 0.3192E-01
3 0.1702E-01
4 0.1569E-01
5 0.1354E-01
6 0.9474E-02
7 0.8213E-02
8 0.8654E-02
9 0.6712E-02
10 0.6050E-02
11 0.6148E-02
12 0.5694E-02
13 0.5034E-02
14 0.5168E-02
15 0.4545E-02
16 0.4294E-02
17 0.4379E-02
18 0.3858E-02
19 0.3862E-02
20 0.3584E-02
21 0.3621E-02
22 0.3427E-02
23 0.3170E-02
24 0.3229E-02
25 0.3071E-02
26 0.2964E-02
27 0.2841E-02
28 0.2858E-02
29 0.2645E-02
30 0.2672E-02
31 0.2653E-02
32 0.2487E-02
33 0.2752E-02
34 0.2822E-02
35 0.2758E-02
36 0.2776E-02
37 0.2805E-02
38 0.2816E-02
39 0.2790E-02
40 0.2836E-02
41 0.2657E-02
42 0.2651E-02
43 0.2584E-02
44 0.2344E-02
45 0.2349E-02
46 0.2205E-02
47 0.2061E-02
48 0.1952E-02
49 0.1829E-02
50 0.1658E-02
51 0.1527E-02
52 0.1386E-02
53 0.1277E-02
54 0.1204E-02
55 0.1155E-02
56 0.1113E-02
57 0.1054E-02
58 0.1042E-02
59 0.9941E-03
60 0.9639E-03
61 0.9270E-03
62 0.8842E-03
63 0.8413E-03
64 0.7933E-03
65 0.7752E-03
66 0.7361E-03
67 0.7361E-03
68 0.7591E-03
69 0.7607E-03
70 0.7468E-03
71 0.7440E-03
72 0.7360E-03
73 0.7291E-03
74 0.7464E-03
75 0.7439E-03
76 0.7427E-03
77 0.7624E-03
78 0.7009E-03
79 0.6600E-03
80 0.6430E-03
81 0.6288E-03
82 0.6356E-03
83 0.6202E-03
84 0.6244E-03
85 0.5867E-03
86 0.5818E-03
87 0.5810E-03
88 0.5603E-03
89 0.5571E-03
90 0.5426E-03
91 0.5299E-03
92 0.5102E-03
93 0.4973E-03
94 0.4622E-03
95 0.4439E-03
96 0.4280E-03
97 0.4018E-03
98 0.3901E-03
99 0.3892E-03
100 0.3840E-03
101 0.3793E-03
102 0.3835E-03
103 0.3772E-03
104 0.3647E-03
105 0.3575E-03
106 0.3587E-03
107 0.3451E-03
108 0.3367E-03
109 0.3212E-03
110 0.3115E-03
111 0.3188E-03
112 0.3121E-03
113 0.3195E-03
114 0.3252E-03
115 0.3149E-03
116 0.3174E-03
117 0.3179E-03
118 0.3160E-03
119 0.3191E-03
120 0.3149E-03
121 0.3124E-03
122 0.3108E-03
123 0.3016E-03
124 0.2954E-03
125 0.2855E-03
126 0.2828E-03
127 0.2789E-03
128 0.2746E-03
129 0.2694E-03
130 0.2649E-03
131 0.2661E-03
132 0.2657E-03
133 0.2620E-03
134 0.2647E-03
135 0.2522E-03
136 0.2455E-03
137 0.2455E-03
138 0.2382E-03
139 0.2432E-03
140 0.2435E-03
141 0.2373E-03
142 0.2273E-03
143 0.2231E-03
144 0.2193E-03
145 0.2112E-03
146 0.2098E-03
147 0.2005E-03
148 0.2007E-03
149 0.2054E-03
150 0.2037E-03
151 0.2056E-03
152 0.2072E-03
153 0.2042E-03
154 0.2045E-03
155 0.2005E-03
156 0.1972E-03
157 0.1976E-03
158 0.2005E-03
159 0.2008E-03
160 0.1999E-03
161 0.2004E-03
162 0.1953E-03
163 0.1994E-03
164 0.2010E-03
165 0.2006E-03
166 0.2048E-03
167 0.2037E-03
168 0.2013E-03
169 0.2080E-03
170 0.2157E-03
171 0.2211E-03
172 0.2350E-03
173 0.2415E-03
174 0.2441E-03
175 0.2537E-03
176 0.2495E-03
177 0.2456E-03
178 0.2418E-03
179 0.2357E-03
180 0.2435E-03
181 0.2473E-03
182 0.2469E-03
183 0.2528E-03
184 0.2624E-03
185 0.2689E-03
186 0.2826E-03
187 0.2889E-03
188 0.2885E-03
189 0.2801E-03
190 0.2710E-03
191 0.2572E-03
192 0.2426E-03
193 0.2335E-03
194 0.2160E-03
195 0.2092E-03
196 0.2009E-03
197 0.1903E-03
198 0.1828E-03
199 0.1794E-03
200 0.1756E-03
201 0.1720E-03
202 0.1695E-03
203 0.1654E-03
204 0.1661E-03
205 0.1603E-03
206 0.1628E-03
207 0.1611E-03
208 0.1549E-03
209 0.1565E-03
210 0.1486E-03
211 0.1435E-03
212 0.1398E-03
213 0.1396E-03
214 0.1366E-03
215 0.1335E-03
216 0.1321E-03
217 0.1246E-03
218 0.1198E-03
219 0.1204E-03
220 0.1138E-03
221 0.1090E-03
222 0.1034E-03
223 0.9468E-04
224 0.9266E-04
225 0.8576E-04
226 0.7893E-04
227 0.7359E-04
228 0.6808E-04
229 0.6388E-04
230 0.6011E-04
231 0.5877E-04
232 0.5606E-04
233 0.5455E-04
234 0.5174E-04
235 0.4767E-04
236 0.4525E-04
237 0.4171E-04
238 0.3901E-04
239 0.3639E-04
240 0.3337E-04
241 0.3038E-04
242 0.2799E-04
243 0.2596E-04
244 0.2393E-04
245 0.2196E-04
246 0.2113E-04
247 0.1927E-04
248 0.1864E-04
249 0.1777E-04
250 0.1691E-04
251 0.1672E-04
252 0.1594E-04
253 0.1642E-04
254 0.1632E-04
255 0.1653E-04
256 0.1694E-04
257 0.1664E-04
258 0.1700E-04
259 0.1735E-04
260 0.1815E-04
261 0.1854E-04
262 0.1923E-04
263 0.1992E-04
264 0.1991E-04
265 0.2005E-04
266 0.1997E-04
267 0.1951E-04
268 0.2002E-04
269 0.1962E-04
270 0.1926E-04
271 0.1930E-04
272 0.1905E-04
273 0.1829E-04
274 0.1788E-04
275 0.1756E-04
276 0.1620E-04
277 0.1593E-04
278 0.1522E-04
279 0.1436E-04
280 0.1377E-04
281 0.1306E-04
282 0.1223E-04
283 0.1160E-04
284 0.1139E-04
285 0.1078E-04
286 0.1045E-04
287 0.1013E-04
288 0.9520E-05
289 0.9212E-05
290 0.8741E-05
291 0.8203E-05
292 0.8022E-05
293 0.7667E-05
294 0.7470E-05
295 0.7248E-05
296 0.7022E-05
297 0.6742E-05
298 0.6720E-05
299 0.6815E-05
300 0.6660E-05
301 0.6836E-05
302 0.6908E-05
303 0.6974E-05
304 0.7180E-05
305 0.7073E-05
306 0.6915E-05
307 0.6740E-05
308 0.6415E-05
309 0.6102E-05
310 0.5770E-05
311 0.5686E-05
312 0.5387E-05
313 0.5211E-05
314 0.5043E-05
315 0.4706E-05
316 0.4623E-05
317 0.4378E-05
318 0.4283E-05
319 0.4133E-05
320 0.4085E-05
321 0.4008E-05
322 0.3902E-05
323 0.3891E-05
324 0.3748E-05
325 0.3646E-05
326 0.3551E-05
327 0.3417E-05
328 0.3325E-05
329 0.3249E-05
330 0.3169E-05
331 0.3204E-05
332 0.3166E-05
333 0.3261E-05
334 0.3211E-05
335 0.3182E-05
336 0.3155E-05
337 0.3024E-05
338 0.3023E-05
339 0.3015E-05
340 0.3075E-05
341 0.3042E-05
342 0.3035E-05
343 0.2991E-05
344 0.2849E-05
345 0.2812E-05
346 0.2779E-05
347 0.2680E-05
348 0.2695E-05
349 0.2582E-05
350 0.2558E-05
351 0.2516E-05
352 0.2553E-05
353 0.2623E-05
354 0.2665E-05
355 0.2810E-05
356 0.2823E-05
357 0.2862E-05
358 0.2853E-05
359 0.2832E-05
360 0.2807E-05
361 0.2802E-05
362 0.2856E-05
363 0.2891E-05
364 0.2961E-05
365 0.3042E-05
366 0.3028E-05
367 0.3007E-05
368 0.3066E-05
369 0.3060E-05
370 0.3090E-05
371 0.3190E-05
372 0.3258E-05
373 0.3281E-05
374 0.3376E-05
375 0.3417E-05
376 0.3450E-05
377 0.3519E-05
378 0.3671E-05
379 0.3709E-05
380 0.3866E-05
381 0.4009E-05
382 0.3943E-05
383 0.4004E-05
384 0.3990E-05
385 0.3910E-05
386 0.3802E-05
387 0.3890E-05
388 0.3881E-05
389 0.3836E-05
390 0.3940E-05
391 0.3852E-05
392 0.3780E-05
393 0.3753E-05
394 0.3604E-05
395 0.3480E-05
396 0.3413E-05
397 0.3324E-05
398 0.3141E-05
399 0.3027E-05
400 0.2903E-05
401 0.2676E-05
402 0.2616E-05
403 0.2466E-05
404 0.2343E-05
405 0.2266E-05
406 0.2139E-05
407 0.2114E-05
408 0.2030E-05
409 0.1966E-05
410 0.1930E-05
411 0.1874E-05
412 0.1855E-05
413 0.1816E-05
414 0.1788E-05
415 0.1745E-05
416 0.1711E-05
417 0.1658E-05
418 0.1582E-05
419 0.1508E-05
420 0.1452E-05
421 0.1362E-05
422 0.1315E-05
423 0.1245E-05
424 0.1160E-05
425 0.1117E-05
426 0.1079E-05
427 0.1025E-05
428 0.1001E-05
429 0.9631E-06
430 0.9010E-06
431 0.8597E-06
432 0.8010E-06
433 0.7747E-06
434 0.7154E-06
435 0.6968E-06
436 0.6646E-06
437 0.6298E-06
438 0.6218E-06
439 0.5918E-06
440 0.5737E-06
441 0.5500E-06
442 0.5251E-06
443 0.4873E-06
444 0.4520E-06
445 0.4233E-06
446 0.3871E-06
447 0.3631E-06
448 0.3453E-06
449 0.3301E-06
450 0.3120E-06
451 0.3080E-06
452 0.2969E-06
453 0.2803E-06
454 0.2861E-06
455 0.2749E-06
456 0.2684E-06
457 0.2676E-06
458 0.2568E-06
459 0.2429E-06
460 0.2292E-06
461 0.2185E-06
462 0.1988E-06
463 0.1884E-06
464 0.1804E-06
465 0.1670E-06
466 0.1619E-06
467 0.1591E-06
468 0.1488E-06
469 0.1475E-06
470 0.1429E-06
471 0.1349E-06
472 0.1291E-06
473 0.1242E-06
474 0.1158E-06
475 0.1104E-06
476 0.1085E-06
477 0.9961E-07
478 0.9807E-07
479 0.9746E-07
480 0.9440E-07
481 0.9385E-07
482 0.9377E-07
483 0.9279E-07
484 0.9273E-07
485 0.9531E-07
486 0.9486E-07
487 0.9594E-07
488 0.9592E-07
489 0.9332E-07
490 0.9167E-07
491 0.8922E-07
492 0.8511E-07
493 0.8275E-07
494 0.7953E-07
495 0.7692E-07
496 0.7188E-07
497 0.6766E-07
498 0.6320E-07
499 0.5887E-07
500 0.5709E-07
501 0.5463E-07
502 0.5333E-07
503 0.5198E-07
504 0.5050E-07
505 0.4883E-07
506 0.4720E-07
507 0.4553E-07
508 0.4394E-07
509 0.4276E-07
510 0.4206E-07
511 0.4127E-07
512 0.4067E-07
513 0.4105E-07
514 0.4071E-07
515 0.4055E-07
516 0.4066E-07
517 0.4049E-07
518 0.3995E-07
519 0.3898E-07
520 0.3834E-07
521 0.3729E-07
522 0.3670E-07
523 0.3605E-07
524 0.3475E-07
525 0.3418E-07
526 0.3314E-07
527 0.3292E-07
528 0.3201E-07
529 0.3158E-07
530 0.3051E-07
531 0.2995E-07
532 0.3013E-07
533 0.2955E-07
534 0.2995E-07
535 0.2998E-07
536 0.2908E-07
537 0.2865E-07
538 0.2778E-07
539 0.2681E-07
540 0.2558E-07
541 0.2462E-07
542 0.2356E-07
543 0.2240E-07
544 0.2211E-07
545 0.2119E-07
546 0.2052E-07
547 0.1985E-07
548 0.1906E-07
549 0.1837E-07
550 0.1782E-07
551 0.1767E-07
552 0.1713E-07
553 0.1701E-07
554 0.1664E-07
555 0.1636E-07
556 0.1649E-07
557 0.1621E-07
558 0.1605E-07
559 0.1615E-07
560 0.1583E-07
561 0.1570E-07
562 0.1555E-07
563 0.1550E-07
564 0.1497E-07
565 0.1463E-07
566 0.1436E-07
567 0.1379E-07
568 0.1379E-07
569 0.1358E-07
570 0.1338E-07
571 0.1323E-07
572 0.1312E-07
573 0.1275E-07
574 0.1290E-07
575 0.1265E-07
576 0.1231E-07
577 0.1212E-07
578 0.1192E-07
579 0.1169E-07
580 0.1120E-07
581 0.1095E-07
582 0.1039E-07
583 0.9830E-08
583 0.9830E-08
ComputeNorm: Computing norm of solution
ComputeChange: NS (ITER=1) (NRM,RELC): ( 188.93505 2.0000000 ) :: electrostatics
DefaultFinish: Finished solver: electrostatics
Loading user function library: [StatElecSolve]...[StatElecSolver_post]
SingleSolver: Calling solver for postprocessing
StatElecSolver_post: ------------------------------------------------
StatElecSolver_post: Calculating postprocessing fields
StatElecSolver_post: Number of 1 postprocessing fields
StatElecSolver_post: Creating a weighting for scaling purposes from 7
StatElecSolver_post: Total Electric Energy: 8.120E-05
StatElecSolver_post: Effective Capacitance: 2.196E-10
ComputeNorm: Computing norm of solution
ComputeChange: SS (ITER=1) (NRM,RELC): ( 188.93505 2.0000000 ) :: electrostatics
SingleSolver: Attempting to call solver: 2
SingleSolver: Solver Equation string is: electric field
FluxSolver: -------------------------------------
FluxSolver: Computing the flux and/or gradient
FluxSolver: -------------------------------------
FluxSolver: Assembly Time: 55.003733873367310
DefaultSolve: Solving linear system with default routines
SolveSystem: Solving linear system
SolveLinearSystem: Assuming real valued linear system
SolveLinearSystem: Assuming serial linear system
ScaleLinearSystem: Creating > DiagScaling < vector of size 10765324
SolveLinearSystem: Linear System Preconditioning: ilu0
Prec0-ilu0: Elapsed REAL time: 0.0001 (s)
SolveLinearSystem: Serial linear System Solver: iterative
IterSolver: Using iterative method: cg
CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
CRS_IncompleteLU: Allocated LU matrix of size: 123796498
CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros: 123796499
CRS_IncompleteLU: ILU(0) (Real), filling (%) : 100
CRS_IncompleteLU: ILU(0) (Real), Factorization time (s): 2.91
Prec-ilu0: Elapsed REAL time: 5.4674 (s)
10 0.9294E-10
10 0.9294E-10
DefaultSolve: Solving linear system with default routines
SolveSystem: Solving linear system
SolveLinearSystem: Assuming real valued linear system
SolveLinearSystem: Assuming serial linear system
ScaleLinearSystem: Creating > DiagScaling < vector of size 10765324
SolveLinearSystem: Linear System Preconditioning: ilu0
Prec0-ilu0: Elapsed REAL time: 0.0000 (s)
SolveLinearSystem: Serial linear System Solver: iterative
IterSolver: Using iterative method: cg
CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros: 123796499
CRS_IncompleteLU: ILU(0) (Real), filling (%) : 100
CRS_IncompleteLU: ILU(0) (Real), Factorization time (s): 1.85
Prec-ilu0: Elapsed REAL time: 1.9819 (s)
10 0.1357E-09
11 0.1565E-10
ComputeNorm: Computing norm of solution
ComputeChange: NS (ITER=2) (NRM,RELC): ( 0.97469715E+10 2.0000000 ) :: electric field
FluxSolver: Solution Time: 28.676481008529663
FluxSolver: Result Norm: 9746971516.0560455
FluxSolver: All done
FluxSolver: -------------------------------------
ComputeNorm: Computing norm of solution
ComputeChange: SS (ITER=1) (NRM,RELC): ( 0.97469715E+10 2.0000000 ) :: electric field
SingleSolver: Attempting to call solver: 3
SingleSolver: Solver Equation string is: result output
ResultOutputSolver: -------------------------------------
ResultOutputSolver: Saving with prefix: elfield_anasen
ResultOutputSolver: Dimension of mesh is: 2
ResultOutputSolver: Working on mesh 1: wires2d with 10765324 nodes
ResultOutputSolver: Creating list for saving - if not present
CreateListForSaving: Scalar Field 1 exists, creating no list!
ResultOutputSolver: Saving in unstructured VTK XML (.vtu) format
VtuOutputSolver: Saving results in VTK XML format with prefix: elfield_anasen
VtuOutputSolver: Saving number of partitions: 1
SolverOutputDirectory: Creating directory: wires2d
VtuOutputSolver: Full filename base is: wires2d/elfield_anasen
GenerateSaveMask: Number of active elements 5386987 out of 5386987
GenerateSaveMask: Number of geometry nodes 10765324 out of 10765324
VtuOutputSolver: Total number of elements to save: 5386987
VtuOutputSolver: Total number of geometry nodes to save: 10765324
VtuOutputSolver: Total number of dof nodes to save: 10765324
VtuOutputSolver: Writing the vtu file: wires2d/elfield_anasen_t0001.vtu
AscBinWriteInit: Initializing buffered ascii/binary writing
AscBinWriteInit: Writing in binary
AscBinWriteInit: Writing in double precision
AscBinWriteInit: Writing to unit number: 58
AscBinWriteInit: Size of buffer is: 10765324
WriteVtuFile: Writing nodal fields
WriteVtuFile: Saving 1-component variable: potential
WriteVtuFile: Saving 2-component variable: electric field
WriteVtuFile: Number of nodal fields written: 2
WriteVtuFile: Writing elemental fields
WriteVtuFile: Number of elemental fields written: 0
WriteVtuFile: Writing coordinates for each used node
WriteVtuFile: Writing the elemental connectivity data
WriteVtuFile: Writing nodal fields
WriteVtuFile: Saving 1-component variable: potential
WriteVtuFile: Saving 2-component variable: electric field
WriteVtuFile: Writing elemental fields
AscBinWriteFree: Terminating buffered ascii/binary writing
VtuOutputSolver: All done for now
ResultOutputSolver: -------------------------------------
WritePostFile: Saving results in ElmerPost format to file wires2d/elstatics.ep
SaveResult: -----------------------------------------
SaveResult: Saving results to file: wires2d/elstatics.result
SaveResult: Done writing results file
SaveResult: -----------------------------------------
SingleSolver: Attempting to call solver: 4
SingleSolver: Solver Equation string is: savescalars
SaveScalars: -----------------------------------------
SaveScalars: Saving scalar values of various kinds
SaveScalars: Performed 0 reduction operations
SaveScalars: Found 3 result scalars in simulation section
SaveScalars: Found 3 values to save in total
SaveScalars: Saving names of values to file: ./scalars.dat.names
SaveScalars: Saving values to file: ./scalars.dat
SaveScalars: -----------------------------------------
ReloadInputFile: Reloading input file
LoadInputFile: Loading input file:
MAIN: Reporting unused list entries for sif improvement!
MAIN: If you do not want these lines undefine > DEVEL_LISTUSAGE < !
Unused keywords:
Boundary Condition 1 calculate electric force
Boundary Condition 2 calculate electric force
Boundary Condition 3 calculate electric force
Boundary Condition 5 calculate electric force
Solver 1 calculate vectors
Solver 2 target variable
Solver 2 calculate vectors
MAIN: *** Elmer Solver: ALL DONE ***
Loading user function library: [StatElecSolve]...[StatElecSolver_Finalize]
Loading user function library: [StatElecSolve]...[StatElecSolver_Finalize]
Loading user function library: [FluxSolver]...[FluxSolver_Finalize]
Loading user function library: [FluxSolver]...[FluxSolver_Finalize]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Finalize]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Finalize]
Loading user function library: [SaveData]...[SaveScalars_Finalize]
Loading user function library: [SaveData]...[SaveScalars_Finalize]
MAIN: The end
SOLVER TOTAL TIME(CPU,REAL): 1293.09 1396.16
ELMER SOLVER FINISHED AT: 2026/10/28 10:08:20

View File

@ -0,0 +1,897 @@
ELMER SOLVER (v 26.2) STARTED AT: 2026/10/28 10:08:23
ParCommInit: Initialize #PEs: 1
MAIN: OMP_NUM_THREADS not set. Using only 1 thread per task.
MAIN:
MAIN: =============================================================
MAIN: ElmerSolver finite element software, Welcome!
MAIN: This program is free software licensed under (L)GPL
MAIN: Copyright April 1st 1995 -> , CSC - IT Center for Science Ltd.
MAIN: Repository https://www.github.org/elmerCSC/elmerfem
MAIN: Homepage https://www.elmerfem.org/, Email elmeradm@csc.fi
MAIN: Version: 26.2-unknown (Rev: unknown, Compiled: 2026-10-16)
MAIN: Running one task without MPI parallelization.
MAIN: Running with just one thread per task.
MAIN: HYPRE library linked in.
MAIN: MUMPS library linked in.
MAIN: Lua interpreter linked in.
MAIN: =============================================================
MAIN:
MAIN:
MAIN: -------------------------------------
MAIN: Reading Model: wires2d_weight.sif
LoadInputFile: Scanning input file: wires2d_weight.sif
LoadInputFile: Scanning only size info
LoadInputFile: First time visiting
LoadInputFile: Reading base load of sif file
LoadInputFile: Loading input file: wires2d_weight.sif
LoadInputFile: Reading base load of sif file
CheckKeyword: Unlisted keyword: [calculate vectors] in section: [solver 1]
CheckKeyword: Unlisted keyword: [calculate vectors] in section: [solver 2]
LoadInputFile: Number of BCs: 7
LoadInputFile: Number of Body Forces: 0
LoadInputFile: Number of Initial Conditions: 0
LoadInputFile: Number of Materials: 1
LoadInputFile: Number of Equations: 1
LoadInputFile: Number of Solvers: 4
LoadInputFile: Number of Bodies: 1
Loading user function library: [StatElecSolve]...[StatElecSolver_Init0]
Loading user function library: [FluxSolver]...[FluxSolver_Init0]
Loading user function library: [FluxSolver]...[FluxSolver_Init0]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init0]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init0]
Loading user function library: [SaveData]...[SaveScalars_Init0]
Loading user function library: [SaveData]...[SaveScalars_Init0]
LoadMesh: Loading serial mesh!
ElmerMeshReader: Performing step: 1
ElmerMeshReader: Base mesh name: ./wires2d
ReadHeaderFile: Reading header info from file: ./wires2d/mesh.header
InitializeMesh: Number of nodes in mesh: 10765324
InitializeMesh: Number of bulk elements in mesh: 5382347
InitializeMesh: Number of boundary elements in mesh: 4640
InitializeMesh: Initial number of max element nodes: 6
ElmerMeshReader: Performing step: 2
ReadNodesFile: Reading nodes from file: ./wires2d/mesh.nodes
SetMeshDimension: Dimension of mesh is: 2
SetMeshDimension: Max dimension of mesh is: 2
MapCoordinates: Scaling coordinates: 1.000E-03 1.000E-03 1.000E+00
ElmerMeshReader: Performing step: 3
ReadElementsFile: Reading bulk elements from file: ./wires2d/mesh.elements
ElmerMeshReader: Performing step: 4
ReadBoundaryFile: Reading boundary elements from file: ./wires2d/mesh.boundary
PermuteNodeNumbering: Performing node mapping
MapBodiesAndBCs: Remapping bodies
MapBodiesAndBCs: Minimum initial body index: 13
MapBodiesAndBCs: Maximum initial body index: 13
MapBodiesAndBCs: Remapping boundaries
MapBodiesAndBCs: Minimum initial boundary index: 1
MapBodiesAndBCs: Maximum initial boundary index: 40
ElmerMeshReader: Performing step: 5
ElmerMeshReader: Performing step: 6
LoadMesh: Loading mesh done
PrepareMesh: Preparing mesh for the future
LoadMesh: Preparing mesh done
LoadMesh: Elapsed REAL time: 77.1926 (s)
MeshStabParams: Computing stabilization parameters
MeshStabParams: Elapsed REAL time: 4.1362 (s)
MAIN: -------------------------------------
AddMeshCoordinates: Setting mesh coordinates and time
AddSolvers: Setting up 4 solvers
AddSolvers: Setting up solver 1: electrostatics
AddEquationBasics: Using procedure: StatElecSolve StatElecSolver
AddEquationBasics: Setting up solver: electrostatics
Loading user function library: [StatElecSolve]...[StatElecSolver_Init]
Loading user function library: [StatElecSolve]...[StatElecSolver_bulk]
Loading user function library: [StatElecSolve]...[StatElecSolver_bulk]
Loading user function library: [StatElecSolve]...[StatElecSolver]
AddEquationBasics: Creating standard variable: potential
OptimizeBandwidth: ---------------------------------------------------------
OptimizeBandwidth: Computing matrix structure for: electrostatics
OptimizeBandwidth: Initial bandwidth for electrostatics: 10752353
OptimizeBandwidth: Optimized bandwidth for electrostatics: 20840
OptimizeBandwidth: ---------------------------------------------------------
AddSolvers: Setting up solver 2: electric field
AddEquationBasics: Using procedure: FluxSolver FluxSolver
AddEquationBasics: Setting up solver: electric field
Loading user function library: [FluxSolver]...[FluxSolver_Init]
WARNING:: FluxSolver_init: No field computation requested, setting > Calculate Flux = True <
FluxSolver_init: Saving flux to: electric field Flux
Loading user function library: [FluxSolver]...[FluxSolver_bulk]
Loading user function library: [FluxSolver]...[FluxSolver_bulk]
Loading user function library: [FluxSolver]...[FluxSolver]
AddEquationBasics: Creating standard variable: electric field_temp
OptimizeBandwidth: ---------------------------------------------------------
OptimizeBandwidth: Computing matrix structure for: electric field
OptimizeBandwidth: Initial bandwidth for electric field: 10752353
OptimizeBandwidth: Optimized bandwidth for electric field: 20840
OptimizeBandwidth: ---------------------------------------------------------
AddSolvers: Setting up solver 3: result output
AddEquationBasics: Using procedure: ResultOutputSolve ResultOutputSolver
AddEquationBasics: Setting up solver: result output
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_bulk]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_bulk]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver]
AddSolvers: Setting up solver 4: savescalars
AddEquationBasics: Using procedure: SaveData SaveScalars
AddEquationBasics: Setting up solver: savescalars
Loading user function library: [SaveData]...[SaveScalars_Init]
Loading user function library: [SaveData]...[SaveScalars_bulk]
Loading user function library: [SaveData]...[SaveScalars_bulk]
Loading user function library: [SaveData]...[SaveScalars]
AddTimeEtc: Setting time and other global variables
MAIN: Random seed initialized to: 314159265
SetInitialConditions: Setting up initial conditions (if any)
MAIN: Number of timesteps to be saved: 1
MAIN:
MAIN: -------------------------------------
MAIN: Steady state iteration: 1
MAIN: -------------------------------------
MAIN:
SingleSolver: Attempting to call solver: 1
SingleSolver: Solver Equation string is: electrostatics
StatElecSolver: ------------------------------------------------
StatElecSolver: Solving static electric field for insulators
StatElecSolver: Permittivity Of Vacuum = 8.854200E-12 (set explicitly in Constants)
DefaultStart: Starting solver: electrostatics
StatElecSolver: Performing non-vectorized bulk element assembly
StatElecSolverBulkAssembly: Elapsed REAL time: 51.8520 (s)
StatElecSolver: Assembly of boundary colour: 1
StatElecSolverBCAssembly: Elapsed REAL time: 0.0198 (s)
DefUtils::DefaultDirichletBCs: Setting Dirichlet boundary conditions
EnforceDirichletConditions: Enforcing total of 9280 Dirichlet conditions.
EnforceDirichletConditions: Applying Dirichlet conditions using scaled diagonal
ScaleLinearSystem: Creating > DiagScaling < vector of size 10765324
EnforceDirichletConditions: Dirichlet conditions enforced for dofs: 9280
DefaultSolve: Solving linear system with default routines
SolveSystem: Solving linear system
SolveLinearSystem: Assuming real valued linear system
SolveLinearSystem: Assuming serial linear system
ScaleLinearSystem: Creating > DiagScaling < vector of size 10765324
SolveLinearSystem: Linear System Preconditioning: ilu1
Prec0-ilu1: Elapsed REAL time: 0.0000 (s)
SolveLinearSystem: Serial linear System Solver: iterative
IterSolver: Using iterative method: cg
CRS_IncompleteLU: ILU(1) (Real), Performing Factorization:
CRS_IncompleteLU: Allocated LU matrix of size: 166400948
CRS_IncompleteLU: ILU(1) (Real), NOF nonzeros: 166400949
CRS_IncompleteLU: ILU(1) (Real), filling (%) : 134
CRS_IncompleteLU: ILU(1) (Real), Factorization time (s): 144.70
Prec-ilu1: Elapsed REAL time: 144.2477 (s)
1 0.5347E-01
2 0.3328E-01
3 0.1924E-01
4 0.1481E-01
5 0.1439E-01
6 0.1095E-01
7 0.8128E-02
8 0.8861E-02
9 0.7366E-02
10 0.5646E-02
11 0.6125E-02
12 0.5680E-02
13 0.4608E-02
14 0.5164E-02
15 0.4180E-02
16 0.4191E-02
17 0.4135E-02
18 0.3766E-02
19 0.3636E-02
20 0.3383E-02
21 0.3640E-02
22 0.2877E-02
23 0.3296E-02
24 0.3014E-02
25 0.2586E-02
26 0.3012E-02
27 0.2732E-02
28 0.2580E-02
29 0.2592E-02
30 0.2634E-02
31 0.2402E-02
32 0.2337E-02
33 0.2333E-02
34 0.2288E-02
35 0.2159E-02
36 0.2161E-02
37 0.2118E-02
38 0.1982E-02
39 0.2037E-02
40 0.1904E-02
41 0.1910E-02
42 0.1837E-02
43 0.1789E-02
44 0.1713E-02
45 0.1642E-02
46 0.1752E-02
47 0.1474E-02
48 0.1612E-02
49 0.1601E-02
50 0.1360E-02
51 0.1403E-02
52 0.1318E-02
53 0.1258E-02
54 0.1253E-02
55 0.1211E-02
56 0.1154E-02
57 0.1126E-02
58 0.1050E-02
59 0.1024E-02
60 0.9542E-03
61 0.9713E-03
62 0.9079E-03
63 0.8562E-03
64 0.9112E-03
65 0.8001E-03
66 0.7960E-03
67 0.7864E-03
68 0.7477E-03
69 0.6913E-03
70 0.6955E-03
71 0.6548E-03
72 0.6144E-03
73 0.6377E-03
74 0.5784E-03
75 0.5479E-03
76 0.5419E-03
77 0.5080E-03
78 0.4891E-03
79 0.4966E-03
80 0.4592E-03
81 0.4495E-03
82 0.4433E-03
83 0.4142E-03
84 0.4067E-03
85 0.4097E-03
86 0.4061E-03
87 0.3725E-03
88 0.3917E-03
89 0.3857E-03
90 0.3596E-03
91 0.3725E-03
92 0.3573E-03
93 0.3453E-03
94 0.3398E-03
95 0.3423E-03
96 0.3117E-03
97 0.2955E-03
98 0.2988E-03
99 0.2779E-03
100 0.2713E-03
101 0.2686E-03
102 0.2528E-03
103 0.2623E-03
104 0.2608E-03
105 0.2365E-03
106 0.2498E-03
107 0.2369E-03
108 0.2279E-03
109 0.2193E-03
110 0.2139E-03
111 0.2121E-03
112 0.2028E-03
113 0.2030E-03
114 0.1943E-03
115 0.1868E-03
116 0.1858E-03
117 0.1810E-03
118 0.1724E-03
119 0.1669E-03
120 0.1707E-03
121 0.1616E-03
122 0.1630E-03
123 0.1641E-03
124 0.1615E-03
125 0.1531E-03
126 0.1580E-03
127 0.1535E-03
128 0.1505E-03
129 0.1457E-03
130 0.1459E-03
131 0.1503E-03
132 0.1429E-03
133 0.1424E-03
134 0.1387E-03
135 0.1378E-03
136 0.1336E-03
137 0.1281E-03
138 0.1307E-03
139 0.1291E-03
140 0.1213E-03
141 0.1235E-03
142 0.1262E-03
143 0.1202E-03
144 0.1200E-03
145 0.1216E-03
146 0.1148E-03
147 0.1112E-03
148 0.1130E-03
149 0.1102E-03
150 0.1052E-03
151 0.1057E-03
152 0.1017E-03
153 0.1061E-03
154 0.1021E-03
155 0.9918E-04
156 0.1041E-03
157 0.9991E-04
158 0.9982E-04
159 0.9954E-04
160 0.1023E-03
161 0.1002E-03
162 0.9694E-04
163 0.1000E-03
164 0.9766E-04
165 0.9679E-04
166 0.9694E-04
167 0.9222E-04
168 0.9434E-04
169 0.9274E-04
170 0.8896E-04
171 0.9257E-04
172 0.9057E-04
173 0.8984E-04
174 0.9194E-04
175 0.9215E-04
176 0.9206E-04
177 0.9011E-04
178 0.8920E-04
179 0.8822E-04
180 0.8819E-04
181 0.8434E-04
182 0.8724E-04
183 0.8690E-04
184 0.8368E-04
185 0.8410E-04
186 0.8546E-04
187 0.8308E-04
188 0.8511E-04
189 0.8511E-04
190 0.8252E-04
191 0.8361E-04
192 0.8306E-04
193 0.8293E-04
194 0.8164E-04
195 0.8151E-04
196 0.7998E-04
197 0.7898E-04
198 0.8071E-04
199 0.7827E-04
200 0.7854E-04
201 0.7897E-04
202 0.8053E-04
203 0.7724E-04
204 0.7795E-04
205 0.7749E-04
206 0.7667E-04
207 0.8003E-04
208 0.7836E-04
209 0.7533E-04
210 0.7639E-04
211 0.7463E-04
212 0.7297E-04
213 0.7311E-04
214 0.7148E-04
215 0.7277E-04
216 0.7063E-04
217 0.7210E-04
218 0.7044E-04
219 0.7116E-04
220 0.7107E-04
221 0.6990E-04
222 0.7070E-04
223 0.6931E-04
224 0.6757E-04
225 0.6630E-04
226 0.6642E-04
227 0.6550E-04
228 0.6404E-04
229 0.6327E-04
230 0.6178E-04
231 0.6057E-04
232 0.5921E-04
233 0.5852E-04
234 0.5681E-04
235 0.5642E-04
236 0.5626E-04
237 0.5609E-04
238 0.5491E-04
239 0.5562E-04
240 0.5611E-04
241 0.5551E-04
242 0.5410E-04
243 0.5453E-04
244 0.5310E-04
245 0.5163E-04
246 0.5115E-04
247 0.5003E-04
248 0.5043E-04
249 0.4970E-04
250 0.4901E-04
251 0.5027E-04
252 0.4822E-04
253 0.4767E-04
254 0.4822E-04
255 0.4624E-04
256 0.4534E-04
257 0.4563E-04
258 0.4418E-04
259 0.4335E-04
260 0.4312E-04
261 0.4176E-04
262 0.4157E-04
263 0.3985E-04
264 0.3950E-04
265 0.3906E-04
266 0.3707E-04
267 0.3820E-04
268 0.3702E-04
269 0.3608E-04
270 0.3567E-04
271 0.3487E-04
272 0.3369E-04
273 0.3254E-04
274 0.3249E-04
275 0.3156E-04
276 0.3085E-04
277 0.2980E-04
278 0.2851E-04
279 0.2829E-04
280 0.2816E-04
281 0.2714E-04
282 0.2687E-04
283 0.2588E-04
284 0.2489E-04
285 0.2407E-04
286 0.2359E-04
287 0.2282E-04
288 0.2222E-04
289 0.2190E-04
290 0.2161E-04
291 0.2101E-04
292 0.2062E-04
293 0.2042E-04
294 0.1961E-04
295 0.1907E-04
296 0.1875E-04
297 0.1833E-04
298 0.1762E-04
299 0.1778E-04
300 0.1717E-04
301 0.1655E-04
302 0.1629E-04
303 0.1610E-04
304 0.1531E-04
305 0.1522E-04
306 0.1482E-04
307 0.1430E-04
308 0.1423E-04
309 0.1382E-04
310 0.1336E-04
311 0.1285E-04
312 0.1299E-04
313 0.1239E-04
314 0.1181E-04
315 0.1160E-04
316 0.1147E-04
317 0.1104E-04
318 0.1088E-04
319 0.1084E-04
320 0.1021E-04
321 0.1027E-04
322 0.1001E-04
323 0.9569E-05
324 0.9237E-05
325 0.9143E-05
326 0.8905E-05
327 0.8415E-05
328 0.8132E-05
329 0.8103E-05
330 0.7573E-05
331 0.7570E-05
332 0.7289E-05
333 0.6822E-05
334 0.6800E-05
335 0.6537E-05
336 0.6328E-05
337 0.6221E-05
338 0.6078E-05
339 0.5812E-05
340 0.5670E-05
341 0.5561E-05
342 0.5374E-05
343 0.5297E-05
344 0.5221E-05
345 0.4998E-05
346 0.4893E-05
347 0.4758E-05
348 0.4603E-05
349 0.4331E-05
350 0.4298E-05
351 0.4205E-05
352 0.3932E-05
353 0.3970E-05
354 0.3879E-05
355 0.3700E-05
356 0.3648E-05
357 0.3590E-05
358 0.3417E-05
359 0.3353E-05
360 0.3349E-05
361 0.3132E-05
362 0.3060E-05
363 0.2992E-05
364 0.2878E-05
365 0.2777E-05
366 0.2726E-05
367 0.2680E-05
368 0.2561E-05
369 0.2499E-05
370 0.2503E-05
371 0.2350E-05
372 0.2291E-05
373 0.2291E-05
374 0.2196E-05
375 0.2124E-05
376 0.2069E-05
377 0.1943E-05
378 0.1900E-05
379 0.1825E-05
380 0.1762E-05
381 0.1756E-05
382 0.1682E-05
383 0.1636E-05
384 0.1583E-05
385 0.1562E-05
386 0.1482E-05
387 0.1454E-05
388 0.1433E-05
389 0.1362E-05
390 0.1341E-05
391 0.1310E-05
392 0.1240E-05
393 0.1232E-05
394 0.1146E-05
395 0.1134E-05
396 0.1104E-05
397 0.1038E-05
398 0.1010E-05
399 0.9848E-06
400 0.9695E-06
401 0.9204E-06
402 0.8811E-06
403 0.8680E-06
404 0.8370E-06
405 0.8015E-06
406 0.7960E-06
407 0.7700E-06
408 0.7217E-06
409 0.7124E-06
410 0.7122E-06
411 0.6730E-06
412 0.6387E-06
413 0.6421E-06
414 0.6217E-06
415 0.5826E-06
416 0.5622E-06
417 0.5619E-06
418 0.5238E-06
419 0.5128E-06
420 0.5005E-06
421 0.4782E-06
422 0.4584E-06
423 0.4437E-06
424 0.4296E-06
425 0.4155E-06
426 0.4046E-06
427 0.3897E-06
428 0.3829E-06
429 0.3635E-06
430 0.3528E-06
431 0.3411E-06
432 0.3293E-06
433 0.3161E-06
434 0.3003E-06
435 0.2931E-06
436 0.2790E-06
437 0.2727E-06
438 0.2657E-06
439 0.2595E-06
440 0.2537E-06
441 0.2409E-06
442 0.2420E-06
443 0.2365E-06
444 0.2253E-06
445 0.2279E-06
446 0.2187E-06
447 0.2137E-06
448 0.2069E-06
449 0.1991E-06
450 0.1951E-06
451 0.1842E-06
452 0.1770E-06
453 0.1703E-06
454 0.1636E-06
455 0.1573E-06
456 0.1513E-06
457 0.1410E-06
458 0.1384E-06
459 0.1329E-06
460 0.1291E-06
461 0.1232E-06
462 0.1203E-06
463 0.1166E-06
464 0.1130E-06
465 0.1101E-06
466 0.1066E-06
467 0.1039E-06
468 0.1017E-06
469 0.1001E-06
470 0.9576E-07
471 0.9171E-07
472 0.8996E-07
473 0.8820E-07
474 0.8378E-07
475 0.8248E-07
476 0.8146E-07
477 0.7693E-07
478 0.7579E-07
479 0.7377E-07
480 0.7089E-07
481 0.7071E-07
482 0.6895E-07
483 0.6634E-07
484 0.6513E-07
485 0.6406E-07
486 0.6326E-07
487 0.6113E-07
488 0.5976E-07
489 0.5801E-07
490 0.5689E-07
491 0.5503E-07
492 0.5377E-07
493 0.5211E-07
494 0.5148E-07
495 0.4939E-07
496 0.4864E-07
497 0.4811E-07
498 0.4785E-07
499 0.4624E-07
500 0.4535E-07
501 0.4584E-07
502 0.4342E-07
503 0.4297E-07
504 0.4229E-07
505 0.4091E-07
506 0.4088E-07
507 0.4060E-07
508 0.3892E-07
509 0.3850E-07
510 0.3815E-07
511 0.3699E-07
512 0.3530E-07
513 0.3515E-07
514 0.3497E-07
515 0.3305E-07
516 0.3345E-07
517 0.3404E-07
518 0.3306E-07
519 0.3356E-07
520 0.3382E-07
521 0.3314E-07
522 0.3261E-07
523 0.3305E-07
524 0.3246E-07
525 0.3201E-07
526 0.3222E-07
527 0.3211E-07
528 0.3162E-07
529 0.3162E-07
530 0.3235E-07
531 0.3170E-07
532 0.3129E-07
533 0.3237E-07
534 0.3117E-07
535 0.3098E-07
536 0.3116E-07
537 0.3058E-07
538 0.3030E-07
539 0.3048E-07
540 0.3023E-07
541 0.2970E-07
542 0.3004E-07
543 0.2973E-07
544 0.2952E-07
545 0.2971E-07
546 0.2997E-07
547 0.2920E-07
548 0.2955E-07
549 0.2905E-07
550 0.2834E-07
551 0.2822E-07
552 0.2813E-07
553 0.2747E-07
554 0.2726E-07
555 0.2719E-07
556 0.2665E-07
557 0.2645E-07
558 0.2649E-07
559 0.2609E-07
560 0.2574E-07
561 0.2585E-07
562 0.2479E-07
563 0.2519E-07
564 0.2474E-07
565 0.2390E-07
566 0.2377E-07
567 0.2350E-07
568 0.2286E-07
569 0.2249E-07
570 0.2208E-07
571 0.2142E-07
572 0.2064E-07
573 0.2004E-07
574 0.1932E-07
575 0.1882E-07
576 0.1813E-07
577 0.1769E-07
578 0.1713E-07
579 0.1644E-07
580 0.1624E-07
581 0.1563E-07
582 0.1508E-07
583 0.1492E-07
584 0.1422E-07
585 0.1380E-07
586 0.1336E-07
587 0.1304E-07
588 0.1245E-07
589 0.1242E-07
590 0.1211E-07
591 0.1184E-07
592 0.1147E-07
593 0.1119E-07
594 0.1099E-07
595 0.1068E-07
596 0.1040E-07
597 0.1019E-07
598 0.9852E-08
598 0.9852E-08
ComputeNorm: Computing norm of solution
ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.41800370E-01 2.0000000 ) :: electrostatics
DefaultFinish: Finished solver: electrostatics
Loading user function library: [StatElecSolve]...[StatElecSolver_post]
SingleSolver: Calling solver for postprocessing
StatElecSolver_post: ------------------------------------------------
StatElecSolver_post: Calculating postprocessing fields
StatElecSolver_post: Number of 1 postprocessing fields
StatElecSolver_post: Creating a weighting for scaling purposes from 7
StatElecSolver_post: Total Electric Energy: 7.297E-12
StatElecSolver_post: Effective Capacitance: 1.459E-11
ComputeNorm: Computing norm of solution
ComputeChange: SS (ITER=1) (NRM,RELC): ( 0.41800370E-01 2.0000000 ) :: electrostatics
SingleSolver: Attempting to call solver: 2
SingleSolver: Solver Equation string is: electric field
FluxSolver: -------------------------------------
FluxSolver: Computing the flux and/or gradient
FluxSolver: -------------------------------------
FluxSolver: Assembly Time: 34.690865039825439
DefaultSolve: Solving linear system with default routines
SolveSystem: Solving linear system
SolveLinearSystem: Assuming real valued linear system
SolveLinearSystem: Assuming serial linear system
ScaleLinearSystem: Creating > DiagScaling < vector of size 10765324
SolveLinearSystem: Linear System Preconditioning: ilu0
Prec0-ilu0: Elapsed REAL time: 0.0000 (s)
SolveLinearSystem: Serial linear System Solver: iterative
IterSolver: Using iterative method: cg
CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
CRS_IncompleteLU: Allocated LU matrix of size: 123796498
CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros: 123796499
CRS_IncompleteLU: ILU(0) (Real), filling (%) : 100
CRS_IncompleteLU: ILU(0) (Real), Factorization time (s): 1.74
Prec-ilu0: Elapsed REAL time: 8.0068 (s)
10 0.1203E-09
11 0.1404E-10
DefaultSolve: Solving linear system with default routines
SolveSystem: Solving linear system
SolveLinearSystem: Assuming real valued linear system
SolveLinearSystem: Assuming serial linear system
ScaleLinearSystem: Creating > DiagScaling < vector of size 10765324
SolveLinearSystem: Linear System Preconditioning: ilu0
Prec0-ilu0: Elapsed REAL time: 0.0000 (s)
SolveLinearSystem: Serial linear System Solver: iterative
IterSolver: Using iterative method: cg
CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros: 123796499
CRS_IncompleteLU: ILU(0) (Real), filling (%) : 100
CRS_IncompleteLU: ILU(0) (Real), Factorization time (s): 1.76
Prec-ilu0: Elapsed REAL time: 1.8808 (s)
10 0.1758E-09
11 0.2016E-10
ComputeNorm: Computing norm of solution
ComputeChange: NS (ITER=2) (NRM,RELC): ( 21621.538 2.0000000 ) :: electric field
FluxSolver: Solution Time: 27.188190937042236
FluxSolver: Result Norm: 21621.538030194177
FluxSolver: All done
FluxSolver: -------------------------------------
ComputeNorm: Computing norm of solution
ComputeChange: SS (ITER=1) (NRM,RELC): ( 21621.538 2.0000000 ) :: electric field
SingleSolver: Attempting to call solver: 3
SingleSolver: Solver Equation string is: result output
ResultOutputSolver: -------------------------------------
ResultOutputSolver: Saving with prefix: elfield_weight
ResultOutputSolver: Dimension of mesh is: 2
ResultOutputSolver: Working on mesh 1: wires2d with 10765324 nodes
ResultOutputSolver: Creating list for saving - if not present
CreateListForSaving: Scalar Field 1 exists, creating no list!
ResultOutputSolver: Saving in unstructured VTK XML (.vtu) format
VtuOutputSolver: Saving results in VTK XML format with prefix: elfield_weight
VtuOutputSolver: Saving number of partitions: 1
SolverOutputDirectory: Creating directory: wires2d
VtuOutputSolver: Full filename base is: wires2d/elfield_weight
GenerateSaveMask: Number of active elements 5386987 out of 5386987
GenerateSaveMask: Number of geometry nodes 10765324 out of 10765324
VtuOutputSolver: Total number of elements to save: 5386987
VtuOutputSolver: Total number of geometry nodes to save: 10765324
VtuOutputSolver: Total number of dof nodes to save: 10765324
VtuOutputSolver: Writing the vtu file: wires2d/elfield_weight_t0001.vtu
AscBinWriteInit: Initializing buffered ascii/binary writing
AscBinWriteInit: Writing in binary
AscBinWriteInit: Writing in double precision
AscBinWriteInit: Writing to unit number: 58
AscBinWriteInit: Size of buffer is: 10765324
WriteVtuFile: Writing nodal fields
WriteVtuFile: Saving 1-component variable: potential
WriteVtuFile: Saving 2-component variable: electric field
WriteVtuFile: Number of nodal fields written: 2
WriteVtuFile: Writing elemental fields
WriteVtuFile: Number of elemental fields written: 0
WriteVtuFile: Writing coordinates for each used node
WriteVtuFile: Writing the elemental connectivity data
WriteVtuFile: Writing nodal fields
WriteVtuFile: Saving 1-component variable: potential
WriteVtuFile: Saving 2-component variable: electric field
WriteVtuFile: Writing elemental fields
AscBinWriteFree: Terminating buffered ascii/binary writing
VtuOutputSolver: All done for now
ResultOutputSolver: -------------------------------------
WritePostFile: Saving results in ElmerPost format to file wires2d/elstatics_weight.ep
SaveResult: -----------------------------------------
SaveResult: Saving results to file: wires2d/elstatics_weight.result
SaveResult: Done writing results file
SaveResult: -----------------------------------------
SingleSolver: Attempting to call solver: 4
SingleSolver: Solver Equation string is: savescalars
SaveScalars: -----------------------------------------
SaveScalars: Saving scalar values of various kinds
SaveScalars: Performed 0 reduction operations
SaveScalars: Found 3 result scalars in simulation section
SaveScalars: Found 3 values to save in total
SaveScalars: Saving names of values to file: ./scalars_weight.dat.names
SaveScalars: Saving values to file: ./scalars_weight.dat
SaveScalars: -----------------------------------------
ReloadInputFile: Reloading input file
LoadInputFile: Loading input file:
MAIN: Reporting unused list entries for sif improvement!
MAIN: If you do not want these lines undefine > DEVEL_LISTUSAGE < !
Unused keywords:
Boundary Condition 1 calculate electric force
Boundary Condition 2 calculate electric force
Boundary Condition 3 calculate electric force
Boundary Condition 5 calculate electric force
Solver 1 calculate vectors
Solver 2 target variable
Solver 2 calculate vectors
MAIN: *** Elmer Solver: ALL DONE ***
Loading user function library: [StatElecSolve]...[StatElecSolver_Finalize]
Loading user function library: [StatElecSolve]...[StatElecSolver_Finalize]
Loading user function library: [FluxSolver]...[FluxSolver_Finalize]
Loading user function library: [FluxSolver]...[FluxSolver_Finalize]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Finalize]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Finalize]
Loading user function library: [SaveData]...[SaveScalars_Finalize]
Loading user function library: [SaveData]...[SaveScalars_Finalize]
MAIN: The end
SOLVER TOTAL TIME(CPU,REAL): 1148.85 1276.22
ELMER SOLVER FINISHED AT: 2026/10/28 10:29:40

View File

@ -0,0 +1,376 @@
==================================================================
ElmerGrid mesh conversion and manipulation utility, Welcome!
Version: 26.2 (Rev: NA, Compiled: NA)
This program is free software licensed under GPL
==================================================================
Elmergrid reading in-line arguments
Output will be saved to file wires2d.
Elmergrid loading data:
-----------------------
Format chosen using the first line: $MeshFormat
Gmsh input file format is type 4.1 in ASCII.
Loading mesh in Gmsh format 4.1 from file wires2d.msh
Reading 146 entities in 0D
Reading 146 entities in 1D
Reading 146 entities in 2D
Allocating for 10765324 knots and 5386987 elements.
Leading element dimension is 2
BC name for physical group 1 is: hot_needle
BC name for physical group 2 is: ic_wire_1
BC name for physical group 3 is: ic_wire_2
BC name for physical group 10 is: guard_wires
BC name for physical group 20 is: anode_wires
BC name for physical group 30 is: cathode_wires
BC name for physical group 40 is: cathode_wire_selected
Body name for physical group 13 is: gas
Allocating lookup table for tags of size 146
Defined 146 0DIM entities with geometric tag range [1 146]
Defined 146 1DIM entities with geometric tag range [1 146]
Physical given tag range is [1 40]
Defined 146 2DIM entities with geometric tag range [1 146]
Physical given tag range is [13 13]
Physical tag offset for 0D is 40
Geometric tag offset for 0D is 186
Reading 10765324 nodes in 438 blocks.
Reading 5386987 elements in 291 blocks.
Mapping mesh tag 2 to physical tag 30 in 1DIM
Mapping mesh tag 3 to physical tag 30 in 1DIM
Mapping mesh tag 4 to physical tag 20 in 1DIM
Mapping mesh tag 5 to physical tag 20 in 1DIM
Mapping mesh tag 6 to physical tag 10 in 1DIM
Mapping mesh tag 7 to physical tag 40 in 1DIM
Mapping mesh tag 8 to physical tag 20 in 1DIM
Mapping mesh tag 9 to physical tag 30 in 1DIM
Mapping mesh tag 10 to physical tag 20 in 1DIM
Mapping mesh tag 11 to physical tag 10 in 1DIM
Mapping mesh tag 12 to physical tag 10 in 1DIM
Mapping mesh tag 13 to physical tag 10 in 1DIM
Mapping mesh tag 14 to physical tag 10 in 1DIM
Mapping mesh tag 15 to physical tag 2 in 1DIM
Mapping mesh tag 16 to physical tag 10 in 1DIM
Mapping mesh tag 17 to physical tag 10 in 1DIM
Mapping mesh tag 18 to physical tag 3 in 1DIM
Mapping mesh tag 19 to physical tag 2 in 1DIM
Mapping mesh tag 20 to physical tag 3 in 1DIM
Mapping mesh tag 21 to physical tag 30 in 1DIM
Mapping mesh tag 22 to physical tag 20 in 1DIM
Mapping mesh tag 23 to physical tag 10 in 1DIM
Mapping mesh tag 24 to physical tag 10 in 1DIM
Mapping mesh tag 25 to physical tag 10 in 1DIM
Mapping mesh tag 26 to physical tag 2 in 1DIM
Mapping mesh tag 27 to physical tag 30 in 1DIM
Mapping mesh tag 28 to physical tag 20 in 1DIM
Mapping mesh tag 29 to physical tag 10 in 1DIM
Mapping mesh tag 30 to physical tag 10 in 1DIM
Mapping mesh tag 31 to physical tag 3 in 1DIM
Mapping mesh tag 32 to physical tag 2 in 1DIM
Mapping mesh tag 33 to physical tag 3 in 1DIM
Mapping mesh tag 34 to physical tag 2 in 1DIM
Mapping mesh tag 35 to physical tag 3 in 1DIM
Mapping mesh tag 36 to physical tag 3 in 1DIM
Mapping mesh tag 37 to physical tag 30 in 1DIM
Mapping mesh tag 38 to physical tag 10 in 1DIM
Mapping mesh tag 39 to physical tag 20 in 1DIM
Mapping mesh tag 40 to physical tag 20 in 1DIM
Mapping mesh tag 41 to physical tag 30 in 1DIM
Mapping mesh tag 42 to physical tag 10 in 1DIM
Mapping mesh tag 43 to physical tag 2 in 1DIM
Mapping mesh tag 44 to physical tag 3 in 1DIM
Mapping mesh tag 45 to physical tag 2 in 1DIM
Mapping mesh tag 46 to physical tag 3 in 1DIM
Mapping mesh tag 47 to physical tag 10 in 1DIM
Mapping mesh tag 48 to physical tag 10 in 1DIM
Mapping mesh tag 49 to physical tag 2 in 1DIM
Mapping mesh tag 50 to physical tag 10 in 1DIM
Mapping mesh tag 51 to physical tag 20 in 1DIM
Mapping mesh tag 52 to physical tag 30 in 1DIM
Mapping mesh tag 53 to physical tag 10 in 1DIM
Mapping mesh tag 54 to physical tag 20 in 1DIM
Mapping mesh tag 55 to physical tag 30 in 1DIM
Mapping mesh tag 56 to physical tag 3 in 1DIM
Mapping mesh tag 57 to physical tag 2 in 1DIM
Mapping mesh tag 58 to physical tag 3 in 1DIM
Mapping mesh tag 59 to physical tag 10 in 1DIM
Mapping mesh tag 60 to physical tag 10 in 1DIM
Mapping mesh tag 61 to physical tag 2 in 1DIM
Mapping mesh tag 62 to physical tag 10 in 1DIM
Mapping mesh tag 63 to physical tag 20 in 1DIM
Mapping mesh tag 64 to physical tag 30 in 1DIM
Mapping mesh tag 65 to physical tag 3 in 1DIM
Mapping mesh tag 66 to physical tag 2 in 1DIM
Mapping mesh tag 67 to physical tag 10 in 1DIM
Mapping mesh tag 68 to physical tag 3 in 1DIM
Mapping mesh tag 69 to physical tag 10 in 1DIM
Mapping mesh tag 70 to physical tag 20 in 1DIM
Mapping mesh tag 71 to physical tag 10 in 1DIM
Mapping mesh tag 72 to physical tag 30 in 1DIM
Mapping mesh tag 73 to physical tag 30 in 1DIM
Mapping mesh tag 74 to physical tag 10 in 1DIM
Mapping mesh tag 75 to physical tag 20 in 1DIM
Mapping mesh tag 76 to physical tag 10 in 1DIM
Mapping mesh tag 77 to physical tag 2 in 1DIM
Mapping mesh tag 78 to physical tag 3 in 1DIM
Mapping mesh tag 79 to physical tag 10 in 1DIM
Mapping mesh tag 80 to physical tag 2 in 1DIM
Mapping mesh tag 81 to physical tag 3 in 1DIM
Mapping mesh tag 82 to physical tag 30 in 1DIM
Mapping mesh tag 83 to physical tag 20 in 1DIM
Mapping mesh tag 84 to physical tag 10 in 1DIM
Mapping mesh tag 85 to physical tag 2 in 1DIM
Mapping mesh tag 86 to physical tag 10 in 1DIM
Mapping mesh tag 87 to physical tag 10 in 1DIM
Mapping mesh tag 88 to physical tag 3 in 1DIM
Mapping mesh tag 89 to physical tag 2 in 1DIM
Mapping mesh tag 90 to physical tag 3 in 1DIM
Mapping mesh tag 91 to physical tag 30 in 1DIM
Mapping mesh tag 92 to physical tag 20 in 1DIM
Mapping mesh tag 93 to physical tag 10 in 1DIM
Mapping mesh tag 94 to physical tag 30 in 1DIM
Mapping mesh tag 95 to physical tag 20 in 1DIM
Mapping mesh tag 96 to physical tag 10 in 1DIM
Mapping mesh tag 97 to physical tag 2 in 1DIM
Mapping mesh tag 98 to physical tag 10 in 1DIM
Mapping mesh tag 99 to physical tag 10 in 1DIM
Mapping mesh tag 100 to physical tag 3 in 1DIM
Mapping mesh tag 101 to physical tag 2 in 1DIM
Mapping mesh tag 102 to physical tag 3 in 1DIM
Mapping mesh tag 103 to physical tag 10 in 1DIM
Mapping mesh tag 104 to physical tag 30 in 1DIM
Mapping mesh tag 105 to physical tag 20 in 1DIM
Mapping mesh tag 106 to physical tag 20 in 1DIM
Mapping mesh tag 107 to physical tag 10 in 1DIM
Mapping mesh tag 108 to physical tag 30 in 1DIM
Mapping mesh tag 109 to physical tag 1 in 1DIM
Mapping mesh tag 110 to physical tag 3 in 1DIM
Mapping mesh tag 111 to physical tag 3 in 1DIM
Mapping mesh tag 112 to physical tag 2 in 1DIM
Mapping mesh tag 113 to physical tag 2 in 1DIM
Mapping mesh tag 114 to physical tag 3 in 1DIM
Mapping mesh tag 115 to physical tag 2 in 1DIM
Mapping mesh tag 116 to physical tag 3 in 1DIM
Mapping mesh tag 117 to physical tag 10 in 1DIM
Mapping mesh tag 118 to physical tag 10 in 1DIM
Mapping mesh tag 119 to physical tag 20 in 1DIM
Mapping mesh tag 120 to physical tag 30 in 1DIM
Mapping mesh tag 121 to physical tag 2 in 1DIM
Mapping mesh tag 122 to physical tag 10 in 1DIM
Mapping mesh tag 123 to physical tag 10 in 1DIM
Mapping mesh tag 124 to physical tag 10 in 1DIM
Mapping mesh tag 125 to physical tag 20 in 1DIM
Mapping mesh tag 126 to physical tag 30 in 1DIM
Mapping mesh tag 127 to physical tag 2 in 1DIM
Mapping mesh tag 128 to physical tag 3 in 1DIM
Mapping mesh tag 129 to physical tag 2 in 1DIM
Mapping mesh tag 130 to physical tag 3 in 1DIM
Mapping mesh tag 131 to physical tag 10 in 1DIM
Mapping mesh tag 132 to physical tag 10 in 1DIM
Mapping mesh tag 133 to physical tag 2 in 1DIM
Mapping mesh tag 134 to physical tag 10 in 1DIM
Mapping mesh tag 135 to physical tag 10 in 1DIM
Mapping mesh tag 136 to physical tag 10 in 1DIM
Mapping mesh tag 137 to physical tag 10 in 1DIM
Mapping mesh tag 138 to physical tag 20 in 1DIM
Mapping mesh tag 139 to physical tag 30 in 1DIM
Mapping mesh tag 140 to physical tag 20 in 1DIM
Mapping mesh tag 141 to physical tag 30 in 1DIM
Mapping mesh tag 142 to physical tag 10 in 1DIM
Mapping mesh tag 143 to physical tag 20 in 1DIM
Mapping mesh tag 144 to physical tag 20 in 1DIM
Mapping mesh tag 145 to physical tag 30 in 1DIM
Mapping mesh tag 146 to physical tag 30 in 1DIM
Mapping mesh tag 1 to physical tag 13 in 2DIM
Mapping mesh tag 2 to physical tag 13 in 2DIM
Mapping mesh tag 3 to physical tag 13 in 2DIM
Mapping mesh tag 4 to physical tag 13 in 2DIM
Mapping mesh tag 5 to physical tag 13 in 2DIM
Mapping mesh tag 6 to physical tag 13 in 2DIM
Mapping mesh tag 7 to physical tag 13 in 2DIM
Mapping mesh tag 8 to physical tag 13 in 2DIM
Mapping mesh tag 9 to physical tag 13 in 2DIM
Mapping mesh tag 10 to physical tag 13 in 2DIM
Mapping mesh tag 11 to physical tag 13 in 2DIM
Mapping mesh tag 12 to physical tag 13 in 2DIM
Mapping mesh tag 13 to physical tag 13 in 2DIM
Mapping mesh tag 14 to physical tag 13 in 2DIM
Mapping mesh tag 15 to physical tag 13 in 2DIM
Mapping mesh tag 16 to physical tag 13 in 2DIM
Mapping mesh tag 17 to physical tag 13 in 2DIM
Mapping mesh tag 18 to physical tag 13 in 2DIM
Mapping mesh tag 19 to physical tag 13 in 2DIM
Mapping mesh tag 20 to physical tag 13 in 2DIM
Mapping mesh tag 21 to physical tag 13 in 2DIM
Mapping mesh tag 22 to physical tag 13 in 2DIM
Mapping mesh tag 23 to physical tag 13 in 2DIM
Mapping mesh tag 24 to physical tag 13 in 2DIM
Mapping mesh tag 25 to physical tag 13 in 2DIM
Mapping mesh tag 26 to physical tag 13 in 2DIM
Mapping mesh tag 27 to physical tag 13 in 2DIM
Mapping mesh tag 28 to physical tag 13 in 2DIM
Mapping mesh tag 29 to physical tag 13 in 2DIM
Mapping mesh tag 30 to physical tag 13 in 2DIM
Mapping mesh tag 31 to physical tag 13 in 2DIM
Mapping mesh tag 32 to physical tag 13 in 2DIM
Mapping mesh tag 33 to physical tag 13 in 2DIM
Mapping mesh tag 34 to physical tag 13 in 2DIM
Mapping mesh tag 35 to physical tag 13 in 2DIM
Mapping mesh tag 36 to physical tag 13 in 2DIM
Mapping mesh tag 37 to physical tag 13 in 2DIM
Mapping mesh tag 38 to physical tag 13 in 2DIM
Mapping mesh tag 39 to physical tag 13 in 2DIM
Mapping mesh tag 40 to physical tag 13 in 2DIM
Mapping mesh tag 41 to physical tag 13 in 2DIM
Mapping mesh tag 42 to physical tag 13 in 2DIM
Mapping mesh tag 43 to physical tag 13 in 2DIM
Mapping mesh tag 44 to physical tag 13 in 2DIM
Mapping mesh tag 45 to physical tag 13 in 2DIM
Mapping mesh tag 46 to physical tag 13 in 2DIM
Mapping mesh tag 47 to physical tag 13 in 2DIM
Mapping mesh tag 48 to physical tag 13 in 2DIM
Mapping mesh tag 49 to physical tag 13 in 2DIM
Mapping mesh tag 50 to physical tag 13 in 2DIM
Mapping mesh tag 51 to physical tag 13 in 2DIM
Mapping mesh tag 52 to physical tag 13 in 2DIM
Mapping mesh tag 53 to physical tag 13 in 2DIM
Mapping mesh tag 54 to physical tag 13 in 2DIM
Mapping mesh tag 55 to physical tag 13 in 2DIM
Mapping mesh tag 56 to physical tag 13 in 2DIM
Mapping mesh tag 57 to physical tag 13 in 2DIM
Mapping mesh tag 58 to physical tag 13 in 2DIM
Mapping mesh tag 59 to physical tag 13 in 2DIM
Mapping mesh tag 60 to physical tag 13 in 2DIM
Mapping mesh tag 61 to physical tag 13 in 2DIM
Mapping mesh tag 62 to physical tag 13 in 2DIM
Mapping mesh tag 63 to physical tag 13 in 2DIM
Mapping mesh tag 64 to physical tag 13 in 2DIM
Mapping mesh tag 65 to physical tag 13 in 2DIM
Mapping mesh tag 66 to physical tag 13 in 2DIM
Mapping mesh tag 67 to physical tag 13 in 2DIM
Mapping mesh tag 68 to physical tag 13 in 2DIM
Mapping mesh tag 69 to physical tag 13 in 2DIM
Mapping mesh tag 70 to physical tag 13 in 2DIM
Mapping mesh tag 71 to physical tag 13 in 2DIM
Mapping mesh tag 72 to physical tag 13 in 2DIM
Mapping mesh tag 73 to physical tag 13 in 2DIM
Mapping mesh tag 74 to physical tag 13 in 2DIM
Mapping mesh tag 75 to physical tag 13 in 2DIM
Mapping mesh tag 76 to physical tag 13 in 2DIM
Mapping mesh tag 77 to physical tag 13 in 2DIM
Mapping mesh tag 78 to physical tag 13 in 2DIM
Mapping mesh tag 79 to physical tag 13 in 2DIM
Mapping mesh tag 80 to physical tag 13 in 2DIM
Mapping mesh tag 81 to physical tag 13 in 2DIM
Mapping mesh tag 82 to physical tag 13 in 2DIM
Mapping mesh tag 83 to physical tag 13 in 2DIM
Mapping mesh tag 84 to physical tag 13 in 2DIM
Mapping mesh tag 85 to physical tag 13 in 2DIM
Mapping mesh tag 86 to physical tag 13 in 2DIM
Mapping mesh tag 87 to physical tag 13 in 2DIM
Mapping mesh tag 88 to physical tag 13 in 2DIM
Mapping mesh tag 89 to physical tag 13 in 2DIM
Mapping mesh tag 90 to physical tag 13 in 2DIM
Mapping mesh tag 91 to physical tag 13 in 2DIM
Mapping mesh tag 92 to physical tag 13 in 2DIM
Mapping mesh tag 93 to physical tag 13 in 2DIM
Mapping mesh tag 94 to physical tag 13 in 2DIM
Mapping mesh tag 95 to physical tag 13 in 2DIM
Mapping mesh tag 96 to physical tag 13 in 2DIM
Mapping mesh tag 97 to physical tag 13 in 2DIM
Mapping mesh tag 98 to physical tag 13 in 2DIM
Mapping mesh tag 99 to physical tag 13 in 2DIM
Mapping mesh tag 100 to physical tag 13 in 2DIM
Mapping mesh tag 101 to physical tag 13 in 2DIM
Mapping mesh tag 102 to physical tag 13 in 2DIM
Mapping mesh tag 103 to physical tag 13 in 2DIM
Mapping mesh tag 104 to physical tag 13 in 2DIM
Mapping mesh tag 105 to physical tag 13 in 2DIM
Mapping mesh tag 106 to physical tag 13 in 2DIM
Mapping mesh tag 107 to physical tag 13 in 2DIM
Mapping mesh tag 108 to physical tag 13 in 2DIM
Mapping mesh tag 109 to physical tag 13 in 2DIM
Mapping mesh tag 110 to physical tag 13 in 2DIM
Mapping mesh tag 111 to physical tag 13 in 2DIM
Mapping mesh tag 112 to physical tag 13 in 2DIM
Mapping mesh tag 113 to physical tag 13 in 2DIM
Mapping mesh tag 114 to physical tag 13 in 2DIM
Mapping mesh tag 115 to physical tag 13 in 2DIM
Mapping mesh tag 116 to physical tag 13 in 2DIM
Mapping mesh tag 117 to physical tag 13 in 2DIM
Mapping mesh tag 118 to physical tag 13 in 2DIM
Mapping mesh tag 119 to physical tag 13 in 2DIM
Mapping mesh tag 120 to physical tag 13 in 2DIM
Mapping mesh tag 121 to physical tag 13 in 2DIM
Mapping mesh tag 122 to physical tag 13 in 2DIM
Mapping mesh tag 123 to physical tag 13 in 2DIM
Mapping mesh tag 124 to physical tag 13 in 2DIM
Mapping mesh tag 125 to physical tag 13 in 2DIM
Mapping mesh tag 126 to physical tag 13 in 2DIM
Mapping mesh tag 127 to physical tag 13 in 2DIM
Mapping mesh tag 128 to physical tag 13 in 2DIM
Mapping mesh tag 129 to physical tag 13 in 2DIM
Mapping mesh tag 130 to physical tag 13 in 2DIM
Mapping mesh tag 131 to physical tag 13 in 2DIM
Mapping mesh tag 132 to physical tag 13 in 2DIM
Mapping mesh tag 133 to physical tag 13 in 2DIM
Mapping mesh tag 134 to physical tag 13 in 2DIM
Mapping mesh tag 135 to physical tag 13 in 2DIM
Mapping mesh tag 136 to physical tag 13 in 2DIM
Mapping mesh tag 137 to physical tag 13 in 2DIM
Mapping mesh tag 138 to physical tag 13 in 2DIM
Mapping mesh tag 139 to physical tag 13 in 2DIM
Mapping mesh tag 140 to physical tag 13 in 2DIM
Mapping mesh tag 141 to physical tag 13 in 2DIM
Mapping mesh tag 142 to physical tag 13 in 2DIM
Mapping mesh tag 143 to physical tag 13 in 2DIM
Mapping mesh tag 144 to physical tag 13 in 2DIM
Mapping mesh tag 145 to physical tag 13 in 2DIM
Mapping mesh tag 146 to physical tag 13 in 2DIM
Moving bulk elements to boundary elements
Assuming that boundaries names are already Ok!
Leading bulk elementtype is 306
Trailing bulk elementtype is 203
There are 4640 (out of 5386987) lower dimensional elements.
Node 2373 belongs to maximum of 10 elements
Found 4640 side elements that have two parents.
Found correctly 4640 side elements.
Parent elements were reordered up to index 5382347.
Moved 5382347 elements (out of 5386987) to new positions
Successfully read the mesh from the Gmsh input file wires2d.msh
Using physical numbering of entities
Elmergrid creating and manipulating meshes:
-------------------------------------------
Coordinates defined in 2 dimensions
Bounding box of all nodes in mesh:
X:[-500,500] Y:[-499.998,499.998] Z:[0,0]
Notice: the longest bounding box side length of [1000] is greater than 50.
ElmerGUI includes a library of material properties, defined in SI units. If using ElmerGUI,
then the geometry is expected to have meters as length. Geometry that exceeds 50 meters
in length or width or height may not be intended. Many Geometry generators assume
millimeters as the basic unit of length. Scaling the geometry from millimeters to meters
may be the desired action. For more help, search the Elmer users forum for posts
about SI units, or for posts about Coordinate Scaling.
Scaling can be accomplished in at least three ways, as follows:
1. Define the original geometry in meters, not millimeters.
2. Call ElmerGrid with -scale 0.001 0.001 0.001 as an option.
3. Add Coordinate Scaling = 0.001 to the simulation section of the sif file.
If using Elmer to analyze large geometry, such as a glacier, then ignore this notice.
Calculate Mesh Pieces in mesh:
There is a single piece in the mesh, so the mesh is conforming.
Elmergrid saving data with method 2:
-------------------------------------
Saving mesh in ElmerSolver format to directory wires2d.
Reusing an existing directory
Saving 10765324 coordinates to mesh.nodes.
Saving 5382347 element topologies to mesh.elements.
Saving boundary elements to mesh.boundary.
Saving header info to mesh.header.
Saving names info to mesh.names.
Saving entities info to entities.sif.
Thank you for using ElmerGrid!
Repository: https://github.com/ElmerCSC/elmerfem
Contact: elmeradm@csc.fi

View File

@ -0,0 +1,61 @@
"""Relative anode-cathode azimuth against z in the anasen_fem 2D model.
The mesher (anasen_fem/wires_gmsh2d_bc.py) places every wire by linear
interpolation in x and y between its plane-1 and plane-2 end points, so a wire
is a straight chord and the lattice is a hyperboloid: the radius shrinks to the
waist at z = 0 and the azimuth is NOT linear in z. This reproduces that
placement exactly and reports, for each z, the azimuth of the anode and cathode
lattices, their relative offset within one 15 deg cathode pitch, and the
smallest anode-cathode centre distance.
"""
import numpy as np
k = 2 * np.pi / 24.0
offset_a1 = -6 * k - 4 * k
offset_c1 = -6 * k + k / 2.0
wireShift = 4.0
offset_a2 = offset_a1 + wireShift * k
offset_c2 = offset_c1 - wireShift * k
i = np.arange(24)
xa1, ya1 = 37 * np.cos(-k * i + offset_a1), 37 * np.sin(-k * i + offset_a1)
xa2, ya2 = 37 * np.cos(-k * i + offset_a2), 37 * np.sin(-k * i + offset_a2)
xc1, yc1 = 42 * np.cos(k * i + offset_c1), 42 * np.sin(k * i + offset_c1)
xc2, yc2 = 42 * np.cos(k * i + offset_c2), 42 * np.sin(k * i + offset_c2)
def wires(z):
t = (z + 174.3) / (2 * 174.3)
xa, ya = xa1 + t * (xa2 - xa1), ya1 + t * (ya2 - ya1)
xc, yc = xc1 + t * (xc2 - xc1), yc1 + t * (yc2 - yc1)
return (xa, ya), (xc, yc)
def rel_azimuth_deg(z, cath=1):
"""Signed azimuth of the nearest anode from cathode `cath`, in degrees."""
(xa, ya), (xc, yc) = wires(z)
phi_c = np.arctan2(yc[cath], xc[cath])
d = np.degrees(np.arctan2(ya, xa) - phi_c)
d = (d + 180.0) % 360.0 - 180.0
j = np.argmin(np.abs(d))
return d[j], j
def min_distance(z, cath=1):
(xa, ya), (xc, yc) = wires(z)
r = np.hypot(xa - xc[cath], ya - yc[cath])
return r.min()
def radii(z):
(xa, ya), (xc, yc) = wires(z)
return np.hypot(xa, ya).mean(), np.hypot(xc, yc).mean()
if __name__ == "__main__":
print(" z[mm] rel_az[deg] anode r_a[mm] r_c[mm] min|a-c|[mm]")
for z in np.arange(-5, 70.001, 1.0):
d, j = rel_azimuth_deg(z)
ra, rc = radii(z)
print("%7.3f %9.4f %4d %7.3f %7.3f %8.4f"
% (z, d, j, ra, rc, min_distance(z)))

View File

@ -0,0 +1,96 @@
"""E.E_w on every anode wire surface, read straight from the Elmer VTUs.
Same quantity as anasen_fem/dotproduct.py, but by default it never writes the
~1 GB dotproduct VTU: only the anode surfaces are needed here, and a sweep over
z would otherwise cost 1 GB per slice. The node-set and all-zeros checks that
dotproduct.py makes are repeated, because both failures are silent. Pass
--dotvtu to read one of the archived dotproduct VTUs instead.
The value reported per anode is the extremum of E.E_w over the nodes lying on
that wire's surface. That is the recipe behind the numbers on slide 21 of the
defense: it returns -2.569e8 for the aligned anode at the z = 19.794 crossover
and -1.517e8 / -1.486e8 for the two anodes at the z = 0 midpoint, against the
-2.57e8, -1.50e8 and 1.7x quoted there.
"""
import argparse
import os
import sys
import numpy as np
import meshio
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from geometry import wires
ap = argparse.ArgumentParser()
ap.add_argument("z", type=float)
ap.add_argument("--phys", default="wires2d/elfield_anasen_t0001.vtu")
ap.add_argument("--weight", default="wires2d/elfield_weight_t0001.vtu")
ap.add_argument("--dotvtu", default=None,
help="an archived dotproduct VTU, read instead of the two "
"field VTUs")
ap.add_argument("--cath", type=int, default=1)
ap.add_argument("--wire-radius", type=float, default=0.254)
ap.add_argument("--band", type=float, default=0.02)
ap.add_argument("--csv", default=None)
a = ap.parse_args()
def array(m, wanted, path):
key = [k for k in m.point_data
if "".join(k.lower().split()) == "".join(wanted.lower().split())]
if not key:
sys.exit("%s: no %r array; has %s" % (path, wanted, sorted(m.point_data)))
v = np.asarray(m.point_data[key[0]], dtype=float)
if not np.any(v):
sys.exit("%s: %s is identically zero -- Elmer applied no boundary "
"condition (check the physical-group tags)." % (path, wanted))
return v
if a.dotvtu:
m = meshio.read(a.dotvtu)
pts3, dot = m.points, array(m, "DotProduct", a.dotvtu)
else:
mp = meshio.read(a.phys)
mw = meshio.read(a.weight)
if mp.points.shape != mw.points.shape or not np.allclose(
mp.points, mw.points, rtol=0.0, atol=1e-12):
sys.exit("the two solves were run on different meshes")
E = array(mp, "electric field", a.phys)
Ew = array(mw, "electric field", a.weight)
ncomp = min(E.shape[1], Ew.shape[1])
dot = np.einsum("ij,ij->i", E[:, :ncomp], Ew[:, :ncomp])
pts3 = mp.points
pts = pts3[:, :2] * 1000.0 # Elmer works in m; wires are in mm
(xa, ya), (xc, yc) = wires(a.z)
phi_c = np.degrees(np.arctan2(yc[a.cath], xc[a.cath]))
rows = []
for j in range(24):
r = np.hypot(pts[:, 0] - xa[j], pts[:, 1] - ya[j])
on = np.abs(r - a.wire_radius) < a.band
if not np.any(on):
continue
d = dot[on]
daz = (np.degrees(np.arctan2(ya[j], xa[j])) - phi_c + 180.0) % 360.0 - 180.0
rows.append((j, daz, int(on.sum()), float(d.min()), float(d.mean()),
float(np.hypot(xa[j] - xc[a.cath], ya[j] - yc[a.cath]))))
rows.sort(key=lambda r: abs(r[1]))
print("# z = %.4f mm, %d nodes" % (a.z, len(dot)))
print("anode d_az[deg] nodes min mean dist[mm]")
for j, daz, n, mn, mean, dist in rows[:7]:
print("%4d %9.3f %6d %10.3e %10.3e %8.3f" % (j, daz, n, mn, mean, dist))
if a.csv:
new = not os.path.exists(a.csv)
with open(a.csv, "a") as f:
if new:
f.write("z_mm,anode,d_az_deg,nodes,dot_min,dot_mean,dist_mm\n")
for j, daz, n, mn, mean, dist in rows:
f.write("%.4f,%d,%.4f,%d,%.6e,%.6e,%.4f\n"
% (a.z, j, daz, n, mn, mean, dist))
print("appended %d rows to %s" % (len(rows), a.csv))

View File

@ -0,0 +1 @@
8.119747066140E-005 8.600000000000E+002 2.195713106041E-010

View File

@ -0,0 +1,10 @@
Metadata for SaveScalars file: ./scalars.dat
Elmer version: 26.2
Elmer compilation date: 2026-10-16
Solver input file: wires2d.sif
File started at: 2026/10/28 10:08:02
Variables in columns of matrix:
1: res: electric energy
2: res: potential difference
3: res: effective capacitance

View File

@ -0,0 +1 @@
7.297444630138E-012 1.000000000000E+000 1.459488926028E-011

View File

@ -0,0 +1,10 @@
Metadata for SaveScalars file: ./scalars_weight.dat
Elmer version: 26.2
Elmer compilation date: 2026-10-16
Solver input file: wires2d_weight.sif
File started at: 2026/10/28 10:29:31
Variables in columns of matrix:
1: res: electric energy
2: res: potential difference
3: res: effective capacitance

View File

@ -0,0 +1,127 @@
Check Keywords Warn
Header
Mesh DB "." "wires2d"
End
Simulation
Coordinate System = Cartesian 2D
Simulation Type = Steady State
Steady State Max Iterations = 1
Output File = "elstatics.result"
Post File = "elstatics.ep"
Coordinate Scaling = 0.001 ! Converts mm from Gmsh to meters for Elmer
End
Constants
Permittivity Of Vacuum = 8.8542e-12
End
Body 1
Target Bodies(1) = 13
Equation = 1
Material = 1
End
Equation 1
Active Solvers(2) = 1 2
End
Material 1
Relative Permittivity = 1
End
Solver 1
Equation = Electrostatics
Procedure = "StatElecSolve" "StatElecSolver"
Variable = Potential
Variable DOFs = 1
Calculate Electric Field = True
Calculate Electric Flux = False
Linear System Solver = Iterative
Linear System Iterative Method = CG
Linear System Max Iterations = 5000
Linear System Convergence Tolerance = 1.0e-8
Linear System Preconditioning = ILU1
Calculate Vectors = Logical True
End
Solver 2
Equation = "Electric Field"
Procedure = "FluxSolver" "FluxSolver"
! Calculate from the potential
Target Variable = "Potential"
! Name of the output vector field in VTU
Flux Variable = String "Electric Field"
! Use 2D components (x, y)
Flux Coefficient = String "Permittivity"
Calculate Vectors = Logical True
End
Solver 3
Equation = Result Output
Procedure = "ResultOutputSolve" "ResultOutputSolver"
Output File Name = elfield_anasen ! Sets prefix for output files
Output Format = Vtu
! Optional: Select specific variables to save
Scalar Field 1 = Potential
Vector Field 1 = Electric Field
End
Solver 4
Exec Solver = After All
Equation = SaveScalars
Procedure = "SaveData" "SaveScalars"
Filename = "scalars.dat"
End
Boundary Condition 1
Target Boundaries = 1
Potential = -200
Calculate Electric Force = True
End
Boundary Condition 2
Target Boundaries = 2
Potential = 150
Calculate Electric Force = True
End
Boundary Condition 3
Target Boundaries = 3
Potential = 250
Calculate Electric Force = True
End
Boundary Condition 4
Target Boundaries = 10
Potential = 0
End
Boundary Condition 5
Target Boundaries = 20
Potential = 660
Calculate Electric Force = True
End
Boundary Condition 6
Target Boundaries = 30
Potential = 0
End
! The one cathode singled out in wires_gmsh2d_bc.py. Grounded here, exactly
! like the other 23; it is only separate so wires2d_weight.sif can drive it.
Boundary Condition 7
Target Boundaries = 40
Potential = 0
End

View File

@ -0,0 +1,132 @@
Check Keywords Warn
! Ramo weighting potential for the single cathode at tag 40: that electrode
! sits at 1 V and every other one at 0 V. Identical to wires2d.sif apart from
! the potentials and the output names, so both solves discretise the same way
! and E . E_w is meaningful node by node.
Header
Mesh DB "." "wires2d"
End
Simulation
Coordinate System = Cartesian 2D
Simulation Type = Steady State
Steady State Max Iterations = 1
Output File = "elstatics_weight.result"
Post File = "elstatics_weight.ep"
Coordinate Scaling = 0.001 ! Converts mm from Gmsh to meters for Elmer
End
Constants
Permittivity Of Vacuum = 8.8542e-12
End
Body 1
Target Bodies(1) = 13
Equation = 1
Material = 1
End
Equation 1
Active Solvers(2) = 1 2
End
Material 1
Relative Permittivity = 1
End
Solver 1
Equation = Electrostatics
Procedure = "StatElecSolve" "StatElecSolver"
Variable = Potential
Variable DOFs = 1
Calculate Electric Field = True
Calculate Electric Flux = False
Linear System Solver = Iterative
Linear System Iterative Method = CG
Linear System Max Iterations = 5000
Linear System Convergence Tolerance = 1.0e-8
Linear System Preconditioning = ILU1
Calculate Vectors = Logical True
End
Solver 2
Equation = "Electric Field"
Procedure = "FluxSolver" "FluxSolver"
! Calculate from the potential
Target Variable = "Potential"
! Name of the output vector field in VTU
Flux Variable = String "Electric Field"
! Use 2D components (x, y)
Flux Coefficient = String "Permittivity"
Calculate Vectors = Logical True
End
Solver 3
Equation = Result Output
Procedure = "ResultOutputSolve" "ResultOutputSolver"
Output File Name = elfield_weight ! Sets prefix for output files
Output Format = Vtu
! Optional: Select specific variables to save
Scalar Field 1 = Potential
Vector Field 1 = Electric Field
End
Solver 4
Exec Solver = After All
Equation = SaveScalars
Procedure = "SaveData" "SaveScalars"
Filename = "scalars_weight.dat"
End
Boundary Condition 1
Target Boundaries = 1
Potential = 0
Calculate Electric Force = True
End
Boundary Condition 2
Target Boundaries = 2
Potential = 0
Calculate Electric Force = True
End
Boundary Condition 3
Target Boundaries = 3
Potential = 0
Calculate Electric Force = True
End
Boundary Condition 4
Target Boundaries = 10
Potential = 0
End
Boundary Condition 5
Target Boundaries = 20
Potential = 0
Calculate Electric Force = True
End
Boundary Condition 6
Target Boundaries = 30
Potential = 0
End
! The one cathode singled out in wires_gmsh2d_bc.py. Grounded here, exactly
! like the other 23; it is only separate so wires2d_weight.sif can drive it.
Boundary Condition 7
Target Boundaries = 40
Potential = 1
End

View File

@ -0,0 +1,295 @@
# This script generates a 2D Gmsh geometry for the ANASEN detector's wire planes, including an optional hot needle and IC wires. The geometry is designed for adaptive meshing, with finer mesh near the wires and coarser mesh in empty space. The script takes a z-locus as a command-line argument to determine the interpolation between the two wire planes.
import numpy as np
import gmsh, sys
# --- Configuration Flags ---
include_ic_wires = True
include_needle = True
gmsh.initialize()
gmsh.model.add("adaptive_mesh")
gmsh.option.setNumber("General.NumThreads", 10)
# gmsh.option.setNumber("Mesh.Adapt.MaxNumberOfElements", 200000)
# gmsh.option.setNumber("Mesh.Adapt.MaxNumberOfNodes", 200000)
# gmsh.option.setNumber("Mesh.Adapt.MaxIter",5)
# gmsh.option.setNumber("Mesh.MeshSizeMin", 5e-3)
# gmsh.option.setNumber("Mesh.MeshSizeMax", 10.0)
gmsh.option.setNumber("Geometry.Tolerance", 4e-2)
# gmsh.option.setNumber("Mesh.MeshSizeExtendFromBoundary", 0)
# Only needed alongside mesh.recombine(), which is off. See the note there.
# gmsh.option.setNumber("Mesh.RecombinationAlgorithm", 2)
# gmsh.option.setNumber("Mesh.SubdivisionAlgorithm", 1)
gmsh.option.setNumber("Mesh.SecondOrderIncomplete", 1)
lc = 0.04
# z_loc = -174.3
if len(sys.argv) < 2:
print("Usage: python3 wires_gmsh2d_bc.py <z_locus in mm> [selected_cathode_index]")
quit()
z_loc = float(sys.argv[1])
# Cathode wire (0..23) given its own physical group, tag 40, so that
# wires2d_weight.sif can hold it at 1 V while everything else stays grounded.
selected_cathode = int(sys.argv[2]) if len(sys.argv) > 2 else 1
wireShift = 4.0
k = 2 * np.pi / 24.0
kg = k/2.0
# Plane 1 Offsets (-zmax/2)
# Anodes: -6*k (base) - 4*k (correction) = -10*k
offset_a1 = -6 * k - 4 * k
# Cathodes: -6*k (base) + 0.5*k (half-placement)
offset_c1 = -6 * k + (k / 2.0)
# Guard wires: aligned with cathodes
offset_g1 = offset_c1
# Plane 2 Offsets (+zmax/2) with Twist
offset_a2 = offset_a1 + (wireShift * k)
offset_c2 = offset_c1 - (wireShift * k)
offset_g2 = offset_c2
# 1 needle, 24 ic1, 24 ic2, 48 guard wires, 24 anodes, 24 cathodes
# needle at plane 1 at -zmax/2 no rotation
xarr_needle = np.array([0])
yarr_needle = np.array([0])
# ic1 wires, plane 1 at -zmax/2 no rotation
xarr_i11 = np.array([23 * np.cos(k * i) for i in range(24)])
yarr_i11 = np.array([23 * np.sin(k * i) for i in range(24)])
# ic1 wires, plane 1 at -zmax/2 no rotation
xarr_i21 = np.array([23 * np.cos(k * i + k / 2.0) for i in range(24)])
yarr_i21 = np.array([23 * np.sin(k * i + k / 2.0) for i in range(24)])
# --- Coordinate Arrays (Plane 1) ---
# Anodes: -k*i (Left-handed twist direction)
xarra_1 = np.array([37 * np.cos(-k * i + offset_a1) for i in range(24)])
yarra_1 = np.array([37 * np.sin(-k * i + offset_a1) for i in range(24)])
# Cathodes: +k*i (Right-handed twist direction)
xarrc_1 = np.array([42 * np.cos(k * i + offset_c1) for i in range(24)])
yarrc_1 = np.array([42 * np.sin(k * i + offset_c1) for i in range(24)])
# Guard Wires (48 wires, use kg spacing)
xarrg_1 = np.array([32 * np.cos(kg * i + offset_g1) for i in range(48)])
yarrg_1 = np.array([32 * np.sin(kg * i + offset_g1) for i in range(48)])
# needle at plane 2 at zmax/2
xarr_needle_2 = np.array([0])
yarr_needle_2 = np.array([0])
# #ic1 wires, plane 2 at zmax/2
xarr_i12 = np.array([23 * np.cos(k * i) for i in range(24)])
yarr_i12 = np.array([23 * np.sin(k * i) for i in range(24)])
# #ic2 wires, plane 2 at zmax/2
xarr_i22 = np.array([23 * np.cos(k * i + k / 2.0) for i in range(24)])
yarr_i22 = np.array([23 * np.sin(k * i + k / 2.0) for i in range(24)])
# --- Coordinate Arrays (Plane 2) ---
xarra_2 = np.array([37 * np.cos(-k * i + offset_a2) for i in range(24)])
yarra_2 = np.array([37 * np.sin(-k * i + offset_a2) for i in range(24)])
xarrc_2 = np.array([42 * np.cos(k * i + offset_c2) for i in range(24)])
yarrc_2 = np.array([42 * np.sin(k * i + offset_c2) for i in range(24)])
xarrg_2 = np.array([32 * np.cos(kg * i + offset_g2) for i in range(48)])
yarrg_2 = np.array([32 * np.sin(kg * i + offset_g2) for i in range(48)])
direction_needle_x = xarr_needle_2 - xarr_needle
direction_needle_y = yarr_needle_2 - yarr_needle
direction_ic1_x = xarr_i12 - xarr_i11
direction_ic1_y = yarr_i12 - yarr_i11
direction_ic2_x = xarr_i22 - xarr_i21
direction_ic2_y = yarr_i22 - yarr_i21
direction_guard_x = xarrg_2 - xarrg_1
direction_guard_y = yarrg_2 - yarrg_1
direction_anodes_x = xarra_2 - xarra_1
direction_anodes_y = yarra_2 - yarra_1
direction_cathodes_x = xarrc_2 - xarrc_1
direction_cathodes_y = yarrc_2 - yarrc_1
t = (z_loc + 174.3) / (2 * 174.3) # z=-174.3 is 0, z=+174.3 is 1
xloc_needle = xarr_needle + t * direction_needle_x
yloc_needle = yarr_needle + t * direction_needle_y
xloc_i1 = xarr_i11 + t * direction_ic1_x
yloc_i1 = yarr_i11 + t * direction_ic1_y
xloc_i2 = xarr_i21 + t * direction_ic2_x
yloc_i2 = yarr_i21 + t * direction_ic2_y
xloc_g = xarrg_1 + t * direction_guard_x
yloc_g = yarrg_1 + t * direction_guard_y
xloc_a = xarra_1 + t * direction_anodes_x
yloc_a = yarra_1 + t * direction_anodes_y
xloc_c = xarrc_1 + t * direction_cathodes_x
yloc_c = yarrc_1 + t * direction_cathodes_y
# wire_radius_a = 0.018 #mm
# wire_radius_c = 0.0762 #mm
# wire_radius_g = 0.0762 #mm
wire_radius = 0.254 # mm
needle = []
ic1_wires = []
ic2_wires = []
guard_wires = []
anode_wires = []
cathode_wires = []
iw1_tags = [(3, i) for i in range(24)]
iw2_tags = [(3, i + 24) for i in range(24)]
gw_tags = [(3, i + 48) for i in range(48)]
aw_tags = [(3, i) for i in range(24)]
cw_tags = [(3, i + 24) for i in range(24)]
# for i,[xa,ya,xc,yc] in enumerate(zip(xarra_1,yarra_1,xarrc_1,yarrc_1)):
# create Hot Needle (1 total)
for i, (xn, yn) in enumerate(zip(xloc_needle, yloc_needle)):
if include_needle:
ndisk = gmsh.model.occ.addDisk(xn, yn, 0, wire_radius, wire_radius)
needle.append(ndisk)
# create Guard Wires (48 total)
for xg, yg in zip(xloc_g, yloc_g):
gdisk = gmsh.model.occ.addDisk(xg, yg, 0, wire_radius, wire_radius)
guard_wires.append(gdisk)
# create Cathode Wires (24 total)
for xc, yc in zip(xloc_c, yloc_c):
cdisk = gmsh.model.occ.addDisk(xc, yc, 0, wire_radius, wire_radius)
cathode_wires.append(cdisk)
# create IC Anode and Cathode Wires (24 total each)
for i, (xa, ya) in enumerate(zip(xloc_a, yloc_a)):
adisk = gmsh.model.occ.addDisk(xa, ya, 0, wire_radius, wire_radius)
anode_wires.append(adisk)
# Place IC wires only if flag is True
if include_ic_wires:
i1disk = gmsh.model.occ.addDisk(
xloc_i1[i], yloc_i1[i], 0, wire_radius, wire_radius
)
i2disk = gmsh.model.occ.addDisk(
xloc_i2[i], yloc_i2[i], 0, wire_radius, wire_radius
)
ic1_wires.append(i1disk)
ic2_wires.append(i2disk)
anasen_barrel = gmsh.model.occ.addDisk(0, 0, 0, 500, 500)
# gmsh.model.occ.synchronize()
# gmsh.model.mesh.embed(1,anode_wires+cathode_wires,2,anasen_barrel)
gmsh.option.setNumber("Geometry.Tolerance", 1e-6)
gmsh.option.setNumber("Geometry.OCCFixDegenerated", 1)
gmsh.model.occ.synchronize()
# --- Surface Extraction ---
def get_surfs(disks):
surfs = []
for d in disks:
surfs += [
s[1] for s in gmsh.model.getBoundary([(2, d)], oriented=False) if s[0] == 1
]
return surfs
if not 0 <= selected_cathode < len(cathode_wires):
print("selected_cathode must be 0..%d" % (len(cathode_wires) - 1))
quit()
cathode_wires_other = [
disk for i, disk in enumerate(cathode_wires) if i != selected_cathode
]
# Cut the wire disks into the gas disk, replacing the old mesh.embed() call.
# embed only makes the mesher honour the curves; fragment splits the barrel
# into conforming surfaces, which is what lets one wire carry its own BC.
gmsh.model.occ.synchronize()
all_wire_disks = needle + guard_wires + cathode_wires + anode_wires
if include_ic_wires:
all_wire_disks += ic1_wires + ic2_wires
gmsh.model.occ.fragment([(2, anasen_barrel)], [(2, d) for d in all_wire_disks])
gmsh.model.occ.synchronize()
# fragment re-derives the bounding curves, so re-extract them.
needle_surfs = get_surfs(needle) if include_needle else []
gwire_surfs = get_surfs(guard_wires)
awire_surfs = get_surfs(anode_wires)
cwire_surfs = get_surfs(cathode_wires_other)
cwire_sel_surfs = get_surfs([cathode_wires[selected_cathode]])
i1wire_surfs = get_surfs(ic1_wires) if include_ic_wires else []
i2wire_surfs = get_surfs(ic2_wires) if include_ic_wires else []
all_active_wire_surfs = (
needle_surfs
+ gwire_surfs
+ awire_surfs
+ cwire_surfs
+ cwire_sel_surfs
+ i1wire_surfs
+ i2wire_surfs
)
f1 = gmsh.model.mesh.field.add("Distance")
gmsh.model.mesh.field.setNumbers(f1, "CurvesList", all_active_wire_surfs)
f2 = gmsh.model.mesh.field.add("Threshold")
gmsh.model.mesh.field.setNumber(f2, "InField", f1)
gmsh.model.mesh.field.setNumber(f2, "SizeMin", 0.05) # Fine mesh near wires
gmsh.model.mesh.field.setNumber(f2, "SizeMax", 5.0) # Large mesh in empty space
gmsh.model.mesh.field.setNumber(f2, "DistMin", 0.5) # Apply SizeMin within 1mm
gmsh.model.mesh.field.setNumber(f2, "DistMax", 15.0) # Transition to SizeMax by 20mm
gmsh.model.mesh.field.setAsBackgroundMesh(f2)
# --- Physical Groups ---
# These tags are the Target Bodies / Target Boundaries numbers in the .sif
# files. Do not renumber them without changing both sifs -- and note that
# ElmerGrid's -autoclean renumbers them for you, which silently breaks every
# boundary condition.
# Needle
if include_needle:
gmsh.model.addPhysicalGroup(1, needle_surfs, tag=1, name="hot_needle")
# IC Wires
if include_ic_wires:
gmsh.model.addPhysicalGroup(1, i1wire_surfs, tag=2, name="ic_wire_1")
gmsh.model.addPhysicalGroup(1, i2wire_surfs, tag=3, name="ic_wire_2")
# Proportional Counter Wires
gmsh.model.addPhysicalGroup(1, gwire_surfs, tag=10, name="guard_wires")
gmsh.model.addPhysicalGroup(1, awire_surfs, tag=20, name="anode_wires")
gmsh.model.addPhysicalGroup(1, cwire_surfs, tag=30, name="cathode_wires")
# The one cathode the weighting potential is solved for, kept out of tag 30 so
# wires2d_weight.sif can drive it independently.
gmsh.model.addPhysicalGroup(1, cwire_sel_surfs, tag=40, name="cathode_wire_selected")
# Gas Volume (2D). fragment split the barrel into many surfaces, so collect
# them all; naming the original disk alone would solve one sliver of the domain.
all_surfaces_2d = [s[1] for s in gmsh.model.getEntities(dim=2)]
gmsh.model.addPhysicalGroup(2, all_surfaces_2d, tag=13, name="gas")
gmsh.option.setNumber("Mesh.Algorithm", 5)
gmsh.model.mesh.generate(2)
gmsh.model.mesh.setOrder(2)
# recombine() ran for over half an hour on the barrel surface without
# finishing, and refine() took the mesh to ~16M nodes. Neither is needed: the
# Threshold field above already gives 0.05 mm elements on 0.254 mm wires.
# gmsh.model.mesh.recombine()
# gmsh.model.mesh.refine()
gmsh.write("wires2d.msh")
# gmsh.fltk.run()
gmsh.finalize()