{"sections":[{"heading":"Before starting","paragraphs":["The useful question is how much refinement your result needs and what that refinement costs on your machine. Start from a completed representative calculation, then change one setting at a time. A mesh count by itself cannot predict memory use or runtime for a different geometry, solver, frequency set or excitation count.","For the worked route, download and extract the complete inline microstrip example. Keep strip.ixi, process.ldf and strip.cir together in a new writable folder. The instructions below use PowerShell and the checked InductEx 8.0.1/TTH 1.1.50 CLI. Confirm which executable your shell selects and its version before comparing results. The example process is a teaching stack, not a calibrated fabrication process."]},{"heading":"Choose the setting to change","paragraphs":["SegmentSize controls the maximum in-plane cuboid segment side length in the LDF Units. This example uses Units = 1e-6, so SegmentSize values 2, 1 and 0.5 mean micrometres. Cuboid layers can have their own SegmentSize override; inspect the full process before assuming the global value controls every layer.","Keep geometry, ports, material properties, frequency and solver settings fixed for this comparison. Keep the layer HFilaments values fixed too: those control height subdivision and are a separate refinement dimension. For triangle/tetrahedron meshing, SegmentSize applies at polygon edges and only its global value is used; the counts and costs below do not qualify those meshes.","AbsMin is not another name for maximum element size. The maintained manual defines it as a nonzero mapping radius around current-density nodes for cuboid meshing. Changing it can affect mapping, so leave it unchanged during this controlled SegmentSize sweep."]},{"code":"$ErrorActionPreference = 'Stop'\n$settings = @{'mesh-2um'='2.0'; 'mesh-1um'='1.0'; 'mesh-0p5um'='0.5'}\nforeach ($caseName in $settings.Keys) {\n    if (Test-Path -LiteralPath $caseName) { throw \"Use a fresh directory: $caseName\" }\n    New-Item -ItemType Directory -Path $caseName | Out-Null\n    foreach ($inputName in @('strip.ixi','process.ldf','strip.cir')) {\n        Copy-Item -LiteralPath $inputName -Destination $caseName\n    }\n    $caseProcess = Join-Path $caseName 'process.ldf'\n    $processText = [IO.File]::ReadAllText($caseProcess)\n    $processText = $processText.Replace('SegmentSize = 2.0', 'SegmentSize = ' + $settings[$caseName])\n    [IO.File]::WriteAllText($caseProcess, $processText, [Text.UTF8Encoding]::new($false))\n}","heading":"Create isolated cases","paragraphs":["Run this preparation block from the folder containing the three extracted files. It creates three new case directories and changes only their copied SegmentSize line. Existing case directories cause an error so an earlier result is not silently reused."]},{"code":"Push-Location .\\mesh-2um\ninductex strip.ixi\n$LASTEXITCODE\nPop-Location\n\nPush-Location .\\mesh-1um\ninductex strip.ixi\n$LASTEXITCODE\nPop-Location\n\nPush-Location .\\mesh-0p5um\ninductex strip.ixi\n$LASTEXITCODE\nPop-Location","heading":"Run and keep each result","paragraphs":[],"steps":["Run each case with the commands below. Check a zero exit code and the current diagnostic output before accepting its numerical files. A leftover artifact or Job finished message alone is insufficient.","In each case, read output/elements.txt for the detailed L1 value and output/sol.txt for mesh information, time allocation, separately reported process peak memory, GMRES and SVD fit diagnostics. Keep these with the exact input files and executable/solver versions.","Inspect the generated mesh and compare geometry and electrical topology. If using the current Studio candidate, open the actual generated .msh; Live Mesh can retain an earlier Premesh preview (KB-GUI-009). The separate staged-run guide explains that inspection route."]},{"heading":"Measured fixed-input comparison","paragraphs":["These are actual values from one sequential Windows sweep. Time is the TTH-stage time reported by InductEx, not total CLI elapsed time. Memory is the reported TTH process peak in MiB, not the combined whole-job or whole-system peak. On a narrow screen, scroll the table horizontally to read all columns."],"table":{"columns":["SegmentSize (um)","Filaments","L1 (pH)","TTH time (s)","TTH peak (MiB)"],"rows":[["2","1,878","3.896479063","1.117","49.8"],["1","7,216","3.872526244","4.056","158.1"],["0.5","27,216","3.851454130","14.86","606.7"]]}},{"heading":"Interpret the change before accepting convergence","paragraphs":["Using abs(L_fine - L_coarse) / abs(L_fine), the 2 to 1 um step changed L1 by 0.61853%, and the 1 to 0.5 um step changed it by 0.54712%. The denominator is the finer result in both comparisons. Earlier single-refinement examples used the coarse denominator; retain the formula with any quoted percentage.","The second change is only modestly smaller. These three values do not establish a converged reference or a universal stopping threshold. Choose the required tolerance for the actual quantity and use further controlled refinement, including height subdivision where relevant, before accepting that requirement. If a change alters topology or produces an incomplete solve, investigate it before comparing values.","The 2 um result lies about 0.09028% below the unchanged 3.9 pH design target; the 0.5 um result lies about 1.24477% below it. Both are within 5% of the design value for this teaching case, but the coarser value being closer to the design does not make it more physically accurate. Design intent, process calibration and mesh convergence answer different questions.","All checked GMRES residuals were below their reported 1e-4 limit; the SVD fit relative errors were also small. These show the stated solver and lumped-fit behavior. They do not bound physical error or remove the observed mesh dependence. The SVD Unknowns = 1 belongs to the fitted one-element network; it is not the filament count of the field model."]},{"heading":"Estimate cost on your own case","paragraphs":["Use a small completed run on the intended machine as the first cost measurement, then refine in bounded steps. Record the actual filament count, solver-stage time, total elapsed time and available memory. Keep the geometry, frequency/excitation set, solver options and runtime identity with the record. Use the observed growth to decide whether the next run fits your resources; do not treat this strip's ratios as a capacity guarantee.","Here the finer 0.5 um case has about 14.5 times as many filaments as the 2 um case and about 12.2 times its reported TTH peak memory. The unchanged baseline repeat produced the exact same mesh bytes and L1, while its TTH time changed from 1.117 to 0.997 seconds and total CLI elapsed time from 4.770 to 1.795 seconds. Repetition matters when startup, licensing and host scheduling contribute to elapsed time.","Reported InductEx and TTH peaks need not occur at the same instant; adding them is not a measured simultaneous peak. Leave room for the operating system, mesh preparation and other work. For an actual memory limit, measure the intended process set on the target machine and retain the measurement method."]},{"heading":"If refinement fails or becomes too expensive","paragraphs":["Keep the failed attempt separate and identify the earliest failed stage. Check the mesh aspect ratios, mappings, connected conductors and expected ports before changing residual limits. Preserve the last completed case as a comparison, then reduce the scope or return to its settings to check recovery. Do not accept a faster failed run as an optimization.","The checked baseline-repeat case recovered the exact original result and mesh after the sweep. It does not demonstrate recovery from an out-of-memory failure. For support, provide a shareable minimal model, exact version/settings, failing stage, count and cost records with private paths and licence details removed."]}],"canonical_url":"https://www.sun-magnetics.com/knowledge-base/inductex-mesh-size-cost","url":"/knowledge-base/inductex-mesh-size-cost","known_issues":[{"disposition":"verified_workaround","id":"KB-GUI-009","title":"Mesh leaves the earlier Premesh visible in Live Mesh","public_notice":"Open the current generated MSH file for segmented-mesh inspection. The retained Live Mesh Premesh image is not proof of the new mesh; reset and repeat stages or use full extraction to rerun.","claim_scope":"Only the affected claim and recorded build/input; not whole-guide or final-release acceptance"}],"search_record":{"execution":true,"relatedProducts":["TetraHenry"],"version_tags":["InductEx 8 preview"],"text":"Choose mesh settings and measure memory and runtime Refine a complete fixed MQS example in separate directories, compare current inductance and diagnostics, and measure the cost before choosing the next mesh. InductEx Windows InductEx 8.0.1 / TTH 1.1.50 measured case; other releases require review How to mesh settings estimate memory runtime performance SegmentSize HFilaments AbsMin filament count TTH peak memory convergence refinement Before starting The useful question is how much refinement your result needs and what that refinement costs on your machine. Start from a completed representative calculation, then change one setting at a time. A mesh count by itself cannot predict memory use or runtime for a different geometry, solver, frequency set or excitation count. For the worked route, download and extract the complete inline microstrip example. Keep strip.ixi, process.ldf and strip.cir together in a new writable folder. The instructions below use PowerShell and the checked InductEx 8.0.1/TTH 1.1.50 CLI. Confirm which executable your shell selects and its version before comparing results. The example process is a teaching stack, not a calibrated fabrication process.  Choose the setting to change SegmentSize controls the maximum in-plane cuboid segment side length in the LDF Units. This example uses Units = 1e-6, so SegmentSize values 2, 1 and 0.5 mean micrometres. Cuboid layers can have their own SegmentSize override; inspect the full process before assuming the global value controls every layer. Keep geometry, ports, material properties, frequency and solver settings fixed for this comparison. Keep the layer HFilaments values fixed too: those control height subdivision and are a separate refinement dimension. For triangle/tetrahedron meshing, SegmentSize applies at polygon edges and only its global value is used; the counts and costs below do not qualify those meshes. AbsMin is not another name for maximum element size. The maintained manual defines it as a nonzero mapping radius around current-density nodes for cuboid meshing. Changing it can affect mapping, so leave it unchanged during this controlled SegmentSize sweep.  Create isolated cases Run this preparation block from the folder containing the three extracted files. It creates three new case directories and changes only their copied SegmentSize line. Existing case directories cause an error so an earlier result is not silently reused. $ErrorActionPreference = 'Stop'\n$settings = @{'mesh-2um'='2.0'; 'mesh-1um'='1.0'; 'mesh-0p5um'='0.5'}\nforeach ($caseName in $settings.Keys) {\n    if (Test-Path -LiteralPath $caseName) { throw \"Use a fresh directory: $caseName\" }\n    New-Item -ItemType Directory -Path $caseName | Out-Null\n    foreach ($inputName in @('strip.ixi','process.ldf','strip.cir')) {\n        Copy-Item -LiteralPath $inputName -Destination $caseName\n    }\n    $caseProcess = Join-Path $caseName 'process.ldf'\n    $processText = [IO.File]::ReadAllText($caseProcess)\n    $processText = $processText.Replace('SegmentSize = 2.0', 'SegmentSize = ' + $settings[$caseName])\n    [IO.File]::WriteAllText($caseProcess, $processText, [Text.UTF8Encoding]::new($false))\n} Run and keep each result Run each case with the commands below. Check a zero exit code and the current diagnostic output before accepting its numerical files. A leftover artifact or Job finished message alone is insufficient. In each case, read output/elements.txt for the detailed L1 value and output/sol.txt for mesh information, time allocation, separately reported process peak memory, GMRES and SVD fit diagnostics. Keep these with the exact input files and executable/solver versions. Inspect the generated mesh and compare geometry and electrical topology. If using the current Studio candidate, open the actual generated .msh; Live Mesh can retain an earlier Premesh preview (KB-GUI-009). The separate staged-run guide explains that inspection route. Push-Location .\\mesh-2um\ninductex strip.ixi\n$LASTEXITCODE\nPop-Location\n\nPush-Location .\\mesh-1um\ninductex strip.ixi\n$LASTEXITCODE\nPop-Location\n\nPush-Location .\\mesh-0p5um\ninductex strip.ixi\n$LASTEXITCODE\nPop-Location Measured fixed-input comparison These are actual values from one sequential Windows sweep. Time is the TTH-stage time reported by InductEx, not total CLI elapsed time. Memory is the reported TTH process peak in MiB, not the combined whole-job or whole-system peak. On a narrow screen, scroll the table horizontally to read all columns.  SegmentSize (um) Filaments L1 (pH) TTH time (s) TTH peak (MiB) 2 1,878 3.896479063 1.117 49.8 1 7,216 3.872526244 4.056 158.1 0.5 27,216 3.851454130 14.86 606.7 Interpret the change before accepting convergence Using abs(L_fine - L_coarse) / abs(L_fine), the 2 to 1 um step changed L1 by 0.61853%, and the 1 to 0.5 um step changed it by 0.54712%. The denominator is the finer result in both comparisons. Earlier single-refinement examples used the coarse denominator; retain the formula with any quoted percentage. The second change is only modestly smaller. These three values do not establish a converged reference or a universal stopping threshold. Choose the required tolerance for the actual quantity and use further controlled refinement, including height subdivision where relevant, before accepting that requirement. If a change alters topology or produces an incomplete solve, investigate it before comparing values. The 2 um result lies about 0.09028% below the unchanged 3.9 pH design target; the 0.5 um result lies about 1.24477% below it. Both are within 5% of the design value for this teaching case, but the coarser value being closer to the design does not make it more physically accurate. Design intent, process calibration and mesh convergence answer different questions. All checked GMRES residuals were below their reported 1e-4 limit; the SVD fit relative errors were also small. These show the stated solver and lumped-fit behavior. They do not bound physical error or remove the observed mesh dependence. The SVD Unknowns = 1 belongs to the fitted one-element network; it is not the filament count of the field model.  Estimate cost on your own case Use a small completed run on the intended machine as the first cost measurement, then refine in bounded steps. Record the actual filament count, solver-stage time, total elapsed time and available memory. Keep the geometry, frequency/excitation set, solver options and runtime identity with the record. Use the observed growth to decide whether the next run fits your resources; do not treat this strip's ratios as a capacity guarantee. Here the finer 0.5 um case has about 14.5 times as many filaments as the 2 um case and about 12.2 times its reported TTH peak memory. The unchanged baseline repeat produced the exact same mesh bytes and L1, while its TTH time changed from 1.117 to 0.997 seconds and total CLI elapsed time from 4.770 to 1.795 seconds. Repetition matters when startup, licensing and host scheduling contribute to elapsed time. Reported InductEx and TTH peaks need not occur at the same instant; adding them is not a measured simultaneous peak. Leave room for the operating system, mesh preparation and other work. For an actual memory limit, measure the intended process set on the target machine and retain the measurement method.  If refinement fails or becomes too expensive Keep the failed attempt separate and identify the earliest failed stage. Check the mesh aspect ratios, mappings, connected conductors and expected ports before changing residual limits. Preserve the last completed case as a comparison, then reduce the scope or return to its settings to check recovery. Do not accept a faster failed run as an optimization. The checked baseline-repeat case recovered the exact original result and mesh after the sweep. It does not demonstrate recovery from an out-of-memory failure. For support, provide a shareable minimal model, exact version/settings, failing stage, count and cost records with private paths and licence details removed. ","id":"inductex-mesh-size-cost","keywords":"mesh settings estimate memory runtime performance SegmentSize HFilaments AbsMin filament count TTH peak memory convergence refinement","kind":"How to","title":"Choose mesh settings and measure memory and runtime","product":"InductEx"},"version":"Windows InductEx 8.0.1 / TTH 1.1.50 measured case; other releases require review","id":"inductex-mesh-size-cost","related":["/knowledge-base/inductex-ixi-geometry","/knowledge-base/inductex-mesh-convergence","/knowledge-base/inductex-staged-run","/knowledge-base/inductex-read-results"],"downloads":[{"url":"/_functions/kbExample?name=inductex-inline-microstrip.zip","scope":"Exact checked input files plus instructions; final-release/platform applicability remains pending.","files":["strip.ixi","process.ldf","strip.cir","README.txt"],"id":"inductex-inline-microstrip","requires":["Matching licensed InductEx 8/TTH runtime","New writable directory; keep strip.ixi, process.ldf and strip.cir together","Review the stated Windows 8.0.1 scope; complete GUI/final-package acceptance remains pending"],"title":"Complete inline MQS microstrip inputs"}],"publication_status":"published","numerical_output":null,"provenance":{"execution_checks":[{"routes":["cli"],"scope":"Four fresh normal licensed CLI cases: fixed MQS cuboid strip with SegmentSize 2, 1 and 0.5 micrometres, plus baseline restoration/repeat. Fourteen checks cover input isolation, completed outputs, actual counts, self-reported costs, residuals and repeat identity","result":"passed","articles":["inductex-mesh-size-cost","inductex-mesh-convergence"],"purpose":"controlled-mqs-segmentation-cost-refinement-and-repeat","version":"Windows catalog InductEx 8.0.1 and bundled TTH 1.1.50, 3 November 2026; exact hashes retained","id":"VAL-025","records":["four fresh copied-input runs","separate current detailed mesh/solver artifacts","baseline-repeat with exact mesh and inductance recovery","exact authored PowerShell blocks replayed with four additional checks"],"limit":"One sequential sweep on this Windows host, not a benchmark, convergence acceptance, memory guarantee or universal scaling law. TTH/InductEx process peaks are separately reported, not simultaneous combined memory. Height slicing, physical calibration, GUI and final distributed-package applicability remain unqualified. EQS is excluded.","observed":[{"InductEx_peak_MiB_reported":32.5,"msh_nodes":16038,"job_seconds_reported":4.139,"gmres_iterations_high":51,"SegmentSize_um":2,"TTH_seconds_reported":1.117,"gmres_residual_high":0.0000627,"solver_version":"1.1.50","filaments":1878,"msh_elements":3780,"design_deviation_percent":-0.0902804358974274,"cli_wall_seconds":4.77,"TTH_peak_MiB_reported":49.8,"completed_exit_code":0,"case":"coarse","L1_H":3.896479063e-12,"svd_relative_error_percent":0.000170625,"gmres_iterations_low":51},{"InductEx_peak_MiB_reported":43.8,"msh_nodes":61482,"job_seconds_reported":4.56,"gmres_iterations_high":52,"SegmentSize_um":1,"TTH_seconds_reported":4.056,"gmres_residual_high":0.0000878,"solver_version":"1.1.50","relative_change_using_finer_denominator":0.006185321284035776,"filaments":7216,"msh_elements":14476,"design_deviation_percent":-0.7044552820512862,"cli_wall_seconds":4.893,"TTH_peak_MiB_reported":158.1,"completed_exit_code":0,"case":"medium","L1_H":3.872526244e-12,"svd_relative_error_percent":0.000129005,"gmres_iterations_low":52},{"InductEx_peak_MiB_reported":103.7,"msh_nodes":231622,"job_seconds_reported":15.464,"gmres_iterations_high":56,"SegmentSize_um":0.5,"TTH_seconds_reported":14.86,"gmres_residual_high":0.0000815,"solver_version":"1.1.50","relative_change_using_finer_denominator":0.005471209908970145,"filaments":27216,"msh_elements":54516,"design_deviation_percent":-1.2447658974358955,"cli_wall_seconds":15.81,"TTH_peak_MiB_reported":606.7,"completed_exit_code":0,"case":"fine","L1_H":3.85145413e-12,"svd_relative_error_percent":0.00000664474,"gmres_iterations_low":56},{"InductEx_peak_MiB_reported":32.6,"msh_nodes":16038,"job_seconds_reported":1.455,"gmres_iterations_high":51,"SegmentSize_um":2,"TTH_seconds_reported":0.997,"gmres_residual_high":0.0000627,"solver_version":"1.1.50","filaments":1878,"msh_elements":3780,"design_deviation_percent":-0.0902804358974274,"cli_wall_seconds":1.795,"TTH_peak_MiB_reported":49.8,"completed_exit_code":0,"case":"baseline-repeat","L1_H":3.896479063e-12,"svd_relative_error_percent":0.000170625,"gmres_iterations_low":51}]}],"figure_evidence":[],"review_notes":["Fourteen fresh CLI checks and artifact/hash reinspection support the stated fixed-input observations. No GUI, universal capacity estimate, convergence threshold or physical calibration is accepted.","The maintained manual gives historical mesh guidance; this guide does not generalize an exponential runtime law or monotonic inductance behavior to arbitrary designs."],"scope":"Recorded inputs/builds only. Complete walkthrough and final-package acceptance remain separate.","verification_requirements":{"gui_method":"not-required-for-this-answer","status":"review-incomplete","illustrations":"not-required-for-this-answer","required":["technical-review","release-applicability","execution","recovery","numerical-interpretation"],"legacy_walkthrough_field":"pending retained; not complete release acceptance"},"sources":[{"id":"inductex:docs/manual/ix_ldf.tex","section":"SegmentSize, layer overrides, HFilaments and AbsMin"},{"id":"inductex:docs/manual/ix_output.tex","section":"Mesh quality, SVD fit and output interpretation"},{"id":"validation:inductex-mesh-cost-windows-20261103","section":"VAL-025; four completed cases, two refinement changes, self-reported process costs and unchanged baseline repeat"}]},"title":"Choose mesh settings and measure memory and runtime","type":"How to","markdown_url":"/_functions/kbResource?path=markdown%2Finductex-mesh-size-cost.md","summary":"Refine a complete fixed MQS example in separate directories, compare current inductance and diagnostics, and measure the cost before choosing the next mesh.","product":"InductEx"}