{"sections":[{"heading":"Start with a nominal circuit that really uses the parameter","paragraphs":["Extract the complete resistor-study ZIP into a new writable ASCII directory and use a matching current JoSIM-Pro 2.9 Optimum installation with a valid JoSIM entitlement. Run from that extracted directory. These commands qualify the scripted CLI route; the maintained 2.9 GUI also has Run > Optimum studies, whose complete native walkthrough and images remain separate.","The fixture ramps a current from zero to 1 mA between 10 and 20 ps. R1 uses RVAL, initially 45 ohms. The SP reference expects node N to reach 50 mV and allows a 20% voltage deviation, giving an independently known passing resistance interval of 40 to 60 ohms. The initial 45-ohm circuit passes.","Keep the SP header as the bare node name N. This SP route generates its voltage print from that name; replacing the header by V(N) produced a missing-label failure. CSV and EVENT input conventions are different. The circuit uses fixed-step PHASE/BDF inside Optimum."]},{"code":"optimum-cli -r 1234 verify.toml\nif ($LASTEXITCODE -ne 0) { throw \"Nominal verification failed\" }\noptimum-cli -r 1234 margin.toml\nif ($LASTEXITCODE -ne 0) { throw \"Margin study failed\" }\nGet-Content .\\margin_report.txt","heading":"Run verification and the selected margin search","steps":["Check that resistor.cir, resistor.sp, verify.toml and margin.toml are together. Read the complete inputs below before changing a physical model.","Run the commands below. A failed nominal verification stops the study; fix its first diagnostic before widening search ranges or changing tolerances.","Read RVAL's negative and positive sides, the critical side and the current margin_report.txt. The supplied search covers scale factors 0.5 to 1.5. Preserve the inputs and record the actual payload and settings with the result."]},{"heading":"Interpret the percentages and search resolution","paragraphs":["Margin varies each selected parameter while the others stay nominal. It does not show that all parameters may move to their worst individual limits simultaneously. A search limit reached while still passing is a censored boundary, not a discovered failure; use the structured receipt to distinguish bracketed failures from search limits.","Binary search assumes a connected passing interval near nominal and uses a directional bracket scan. The checked exhaustive variant, with accuracy = 0.005, gives 11.00% and 33.00%, consistent with its coarser grid. A pocket-search variant writes a pass/fail map. Neither grid establishes that a narrower disconnected pocket cannot exist."],"table":{"columns":["Quantity","Checked interpretation"],"rows":[["Lower side","11.04% below the 45-ohm nominal; analytic boundary is (1 - 40/45) × 100 = 11.111...%."],["Upper side","33.30% above nominal; analytic boundary is (60/45 - 1) × 100 = 33.333...%."],["Critical margin","11.04%, the smaller side, labelled RVAL-."],["Average margin","11.04% here. The implementation takes the smaller directional average; it is not the arithmetic mean of these two sides."],["Resolution","accuracy = 0.001 is a scale-factor search tolerance, approximately 0.1 percentage point; it is not a physical solver-accuracy guarantee."]],"wrap":true}},{"heading":"Choose the right parameter and tolerance controls","paragraphs":["The parameter must be consumed by the circuit. Replacing R1 N 0 RVAL by a literal R1 N 0 45 leaves RVAL unused; the checked search then reports the 50% search limits on both sides. That is not evidence of a physically robust resistance range.","If RVAL is derived from RBASE and RBASE is searched, set margin.parameter_dependence = true when dependents should be re-evaluated. The checked frozen-dependent case reaches only the search limits, while re-evaluating the dependent recovers the expected resistance margins.","For this ordinary SP voltage trace, amplitude_threshold controls the acceptance fraction. Setting it to 0.25 changes the analytic interval to 37.5–62.5 ohms and widens the reported margins accordingly. Changing the phase threshold alone leaves this voltage margin unchanged. Do not treat one tolerance field as universal across voltage, current and phase checks."]},{"heading":"Recover an empty selection or failed nominal result","steps":["Check the actual .PARAM names and their uses before applying a selection regex. Start with the exact anchored ^RVAL$ pattern supplied here.","If selection fails, replace the search_string entry by the explicit entry RVAL = {} under [parameters], then run again to a new output name or fresh folder. The explicit selection reproduces the expected margins.","If the process instead exits abnormally, retain the configuration, diagnostic and actual payload identity. An earlier installed review binary crashed on an empty selection; the current checked source build rejects it with a diagnostic. A common version number alone does not identify that behaviour.","Keep the same acceptance rule and meaningful numerical/physical model while investigating a margin discrepancy. Nominal RVAL = 30 fails verification in this fixture and correctly prevents every study mode from exporting a result."]},{"code":"* Public one-resistor Optimum teaching circuit; RVAL is actually consumed\n.PARAM RVAL=45\nI1 0 N PWL(0 0 10p 0 20p 1m 100p 1m)\nR1 N 0 RVAL\n.TRAN 1p 100p\n.PRINT V(N)\n.END\n","heading":"Complete resistor.cir"},{"code":"time N\n0 0\n1e-11 0\n2e-11 0.05\n5e-11 0.05\n1e-10 0.05\n","heading":"Complete resistor.sp"},{"code":"mode = \"verify\"\n\n[verify]\nmethod = \"spec_file\"\ncircuit = \"resistor.cir\"\nfile = \"resistor.sp\"\namplitude_threshold = 0.20\n","heading":"Complete verify.toml"},{"code":"mode = \"margin\"\n\n[verify]\nmethod = \"spec_file\"\ncircuit = \"resistor.cir\"\nfile = \"resistor.sp\"\namplitude_threshold = 0.20\n\n[parameters]\nsearch_string = \"^RVAL$\"\n\n[margin]\naccuracy = 0.001\nbinary_search_steps = 12\nmin_search = 0.5\nmax_search = 1.5\noutput = \"margin_report.txt\"\n","heading":"Complete margin.toml"}],"canonical_url":"https://www.sun-magnetics.com/knowledge-base/optimum-margin-workflow","url":"/knowledge-base/optimum-margin-workflow","known_issues":[{"disposition":"verified_workaround","id":"KB-OPTIMUM-001","title":"Windows typed study rejects a Unicode configuration directory","public_notice":"Use a fresh complete writable ASCII-path teaching copy for the checked Windows typed study. This avoids the reproduced Unicode-path boundary without changing locale or renaming production sources.","claim_scope":"Only the affected claim and recorded build/input; not whole-guide or final-release acceptance"}],"search_record":{"execution":true,"relatedProducts":[],"version_tags":["JoSIM-Pro 2.9 target"],"text":"Configure and interpret an Optimum margin study Select a consumed parameter, verify the nominal circuit and read both margin sides against known bounds. Search resolution, parameter dependence and verification tolerances have distinct roles. Optimum JoSIM-Pro 2.9.0 release target; frozen current-source Windows evidence How to Optimum margin parameter selection empty regex RVAL amplitude_threshold parameter_dependence binary exhaustive pocket search critical average margin search limits censored boundary missing-label crash Start with a nominal circuit that really uses the parameter Extract the complete resistor-study ZIP into a new writable ASCII directory and use a matching current JoSIM-Pro 2.9 Optimum installation with a valid JoSIM entitlement. Run from that extracted directory. These commands qualify the scripted CLI route; the maintained 2.9 GUI also has Run > Optimum studies, whose complete native walkthrough and images remain separate. The fixture ramps a current from zero to 1 mA between 10 and 20 ps. R1 uses RVAL, initially 45 ohms. The SP reference expects node N to reach 50 mV and allows a 20% voltage deviation, giving an independently known passing resistance interval of 40 to 60 ohms. The initial 45-ohm circuit passes. Keep the SP header as the bare node name N. This SP route generates its voltage print from that name; replacing the header by V(N) produced a missing-label failure. CSV and EVENT input conventions are different. The circuit uses fixed-step PHASE/BDF inside Optimum.  Run verification and the selected margin search Check that resistor.cir, resistor.sp, verify.toml and margin.toml are together. Read the complete inputs below before changing a physical model. Run the commands below. A failed nominal verification stops the study; fix its first diagnostic before widening search ranges or changing tolerances. Read RVAL's negative and positive sides, the critical side and the current margin_report.txt. The supplied search covers scale factors 0.5 to 1.5. Preserve the inputs and record the actual payload and settings with the result. optimum-cli -r 1234 verify.toml\nif ($LASTEXITCODE -ne 0) { throw \"Nominal verification failed\" }\noptimum-cli -r 1234 margin.toml\nif ($LASTEXITCODE -ne 0) { throw \"Margin study failed\" }\nGet-Content .\\margin_report.txt Interpret the percentages and search resolution Margin varies each selected parameter while the others stay nominal. It does not show that all parameters may move to their worst individual limits simultaneously. A search limit reached while still passing is a censored boundary, not a discovered failure; use the structured receipt to distinguish bracketed failures from search limits. Binary search assumes a connected passing interval near nominal and uses a directional bracket scan. The checked exhaustive variant, with accuracy = 0.005, gives 11.00% and 33.00%, consistent with its coarser grid. A pocket-search variant writes a pass/fail map. Neither grid establishes that a narrower disconnected pocket cannot exist.  Quantity Checked interpretation Lower side 11.04% below the 45-ohm nominal; analytic boundary is (1 - 40/45) × 100 = 11.111...%. Upper side 33.30% above nominal; analytic boundary is (60/45 - 1) × 100 = 33.333...%. Critical margin 11.04%, the smaller side, labelled RVAL-. Average margin 11.04% here. The implementation takes the smaller directional average; it is not the arithmetic mean of these two sides. Resolution accuracy = 0.001 is a scale-factor search tolerance, approximately 0.1 percentage point; it is not a physical solver-accuracy guarantee. Choose the right parameter and tolerance controls The parameter must be consumed by the circuit. Replacing R1 N 0 RVAL by a literal R1 N 0 45 leaves RVAL unused; the checked search then reports the 50% search limits on both sides. That is not evidence of a physically robust resistance range. If RVAL is derived from RBASE and RBASE is searched, set margin.parameter_dependence = true when dependents should be re-evaluated. The checked frozen-dependent case reaches only the search limits, while re-evaluating the dependent recovers the expected resistance margins. For this ordinary SP voltage trace, amplitude_threshold controls the acceptance fraction. Setting it to 0.25 changes the analytic interval to 37.5–62.5 ohms and widens the reported margins accordingly. Changing the phase threshold alone leaves this voltage margin unchanged. Do not treat one tolerance field as universal across voltage, current and phase checks.  Recover an empty selection or failed nominal result Check the actual .PARAM names and their uses before applying a selection regex. Start with the exact anchored ^RVAL$ pattern supplied here. If selection fails, replace the search_string entry by the explicit entry RVAL = {} under [parameters], then run again to a new output name or fresh folder. The explicit selection reproduces the expected margins. If the process instead exits abnormally, retain the configuration, diagnostic and actual payload identity. An earlier installed review binary crashed on an empty selection; the current checked source build rejects it with a diagnostic. A common version number alone does not identify that behaviour. Keep the same acceptance rule and meaningful numerical/physical model while investigating a margin discrepancy. Nominal RVAL = 30 fails verification in this fixture and correctly prevents every study mode from exporting a result.  Complete resistor.cir * Public one-resistor Optimum teaching circuit; RVAL is actually consumed\n.PARAM RVAL=45\nI1 0 N PWL(0 0 10p 0 20p 1m 100p 1m)\nR1 N 0 RVAL\n.TRAN 1p 100p\n.PRINT V(N)\n.END\n Complete resistor.sp time N\n0 0\n1e-11 0\n2e-11 0.05\n5e-11 0.05\n1e-10 0.05\n Complete verify.toml mode = \"verify\"\n\n[verify]\nmethod = \"spec_file\"\ncircuit = \"resistor.cir\"\nfile = \"resistor.sp\"\namplitude_threshold = 0.20\n Complete margin.toml mode = \"margin\"\n\n[verify]\nmethod = \"spec_file\"\ncircuit = \"resistor.cir\"\nfile = \"resistor.sp\"\namplitude_threshold = 0.20\n\n[parameters]\nsearch_string = \"^RVAL$\"\n\n[margin]\naccuracy = 0.001\nbinary_search_steps = 12\nmin_search = 0.5\nmax_search = 1.5\noutput = \"margin_report.txt\"\n","id":"optimum-margin-workflow","keywords":"Optimum margin parameter selection empty regex RVAL amplitude_threshold parameter_dependence binary exhaustive pocket search critical average margin search limits censored boundary missing-label crash","kind":"How to","title":"Configure and interpret an Optimum margin study","product":"Optimum"},"version":"JoSIM-Pro 2.9.0 release target; frozen current-source Windows evidence","id":"optimum-margin-workflow","related":["/knowledge-base/optimum-first-verification","/knowledge-base/optimum-yield-workflow","/knowledge-base/optimum-optimize-workflow","/knowledge-base/optimum-agent-receipts","/knowledge-base/optimum-margin-criteria","/knowledge-base/josim-netlist-basics"],"downloads":[{"url":"/_functions/kbExample?name=optimum-resistor-studies.zip","scope":"Exact checked input files plus instructions; final-release/platform applicability remains pending.","files":["resistor.cir","resistor.sp","verify.toml","margin.toml","yield.toml","rolloff.toml","optimize.toml","optimum_receipt.py","README.txt"],"id":"optimum-resistor-studies","requires":["Matching current JoSIM-Pro 2.9 Optimum/native C API payload and valid JoSIM entitlement","New writable ASCII directory; keep all circuit, SP and TOML inputs together","For receipts, checked Windows x64 CPython 3.13 and the matching typed Optimum C API exports"],"title":"Complete Optimum resistor studies and native receipt client"}],"publication_status":"published","numerical_output":null,"provenance":{"execution_checks":[{"routes":["cli","c-api","python-c-api"],"scope":"Fresh hash-frozen Windows 2.9 source build: complete SP resistor Margin/Yield/roll-off/COG Optimize, analytic bounds and statistics, saved-candidate re-verification, native typed JSON receipts, per-sample seeded identity at one/two threads and guarded failures","result":"passed","articles":["optimum-margin-workflow","optimum-yield-workflow","optimum-optimize-workflow","optimum-agent-receipts","optimum-margin-criteria"],"purpose":"current-optimum-studies-and-typed-agent-receipts","version":"JoSIM/Optimum 2.9.0 frozen maintained source, native Windows x64 Clang/OpenMP build, 3 November 2026","id":"VAL-030","records":["fresh 3378-file source freeze and isolated CMake build","37 real native CLI workflow/recovery checks","25 real typed C API/client checks","exact per-sample assignment/verdict comparison at one/two threads","separate verification of the saved numeric candidate","native AMD64/required-export/OpenMP/source preservation provenance review","eight checks replay all four exact guide command blocks from the actual browser-downloaded shared ZIP"],"limit":"Sixty-two checks qualify this linear SP fixture and the recorded Windows source candidate. The current Unicode configuration-path issue remains KB-OPTIMUM-001, with ASCII-path recovery checked. GUI run/cancel/adoption screenshots, EVENT/CSV/Josephson/process-distribution validation, other platforms, broad concurrency/callback/cancellation contracts and final distributed packages remain open. Earlier installed review binaries behaved differently and are retained separately.","observed":{"margin":{"average_percent":11.04,"critical_percent":11.04,"negative_percent":11.04,"positive_percent":33.3},"same_seed_pass_counts":[356,356,356,356],"yield_population_probability":0.8663106767642976,"parallel_threads":2,"native_sample_records":400,"rolloff":[[0.25,92],[0.5,76],[0.75,56],[1,51.5]],"yield":{"fails":44,"passes":356,"percent":89},"optimized_margin":{"average_percent":18.55,"critical_percent":18.55,"negative_percent":18.55,"positive_percent":22.07},"zero_iteration_best_verified":true,"yield_wilson_95_interval":[0.8555490895383555,0.9170313208808931],"optimized_R_ohms":49.114636,"serial_threads":1,"unicode_path_issue":"KB-OPTIMUM-001","native_schema":"optimum-operation/1","zero_iteration_outcome":"max_iterations","yield_sigma_ohms":4.5}}],"figure_evidence":[],"review_notes":["Sixty-two checks qualify this linear SP fixture and the recorded Windows source candidate. The current Unicode configuration-path issue remains KB-OPTIMUM-001, with ASCII-path recovery checked. GUI run/cancel/adoption screenshots, EVENT/CSV/Josephson/process-distribution validation, other platforms, broad concurrency/callback/cancellation contracts and final distributed packages remain open. Earlier installed review binaries behaved differently and are retained separately.","The source reference was reviewed and re-pinned individually after its maintained content changed. Older installed-review observations remain separate; no final package or GUI walkthrough is accepted."],"scope":"Recorded inputs/builds only. Complete walkthrough and final-package acceptance remain separate.","verification_requirements":{"gui_method":"not-required-for-this-answer","illustrations":"not-required-for-this-answer","required":["technical-review","release-applicability","execution","recovery","numerical-interpretation"],"status":"review-incomplete"},"sources":[{"id":"josim-pro:docs/manual_source/sections/optimum.tex","section":"Current reviewed Optimum reference; applicable mode/configuration and bounded SP fixture claims"},{"id":"validation:optimum-current-windows-20261103","section":"VAL-030; fresh native CLI/API execution and recovery"}]},"title":"Configure and interpret an Optimum™ margin study","type":"How to","markdown_url":"/_functions/kbResource?path=markdown%2Foptimum-margin-workflow.md","summary":"Select a consumed parameter, verify the nominal circuit and read both margin sides against known bounds. Search resolution, parameter dependence and verification tolerances have distinct roles.","product":"Optimum"}