Skip to content
Development documentation — This site follows the main branch and may differ from an installed release. View the changelog.

Output Format Reference

Use this reference to determine which BEACH files are generated, which columns or receipts to read, and which files are required for restart. A receipt is a resolved setting or runtime state written to summary.txt as key=value, not merely a copy of the input value.

For a first inspection, follow Inspect Output Files before using this page. The machine-readable source of truth for file-generation conditions is schemas/beach.output-manifest.json.

Each row keeps a file’s generation condition, format, purpose, and reader or restart role together. For a complex file, the linked section repeats this information before expanding its columns and decision rules.

FileGeneration conditionFormat and purposePython reader / restart
summary.txtoutput.write_files=truekey=value receipts. Completion and major keysFields of FortranRunResult. Required for restart
charges.csvoutput.write_files=trueelem_idx, charge_C. Final signed charge per elementresult.charges. Required for restart
mesh_triangles.csvoutput.write_files=trueelem_idx, v0x, v0y, v0z, v1x, v1y, v1z, v2x, v2y, v2z, charge_C, mesh_idresult.triangles, result.mesh_ids. Not used for restart
mesh_sources.csvOBJ or template mesh with output.write_files=truemesh_id, source_kind, template_kind, surface_model, epsilon_r, elem_countresult.mesh_sources. Not used for restart
mesh_potential.csvoutput.write_files=true and output.write_mesh_potential=trueelem_idx, potential_V. Potential compositionresult.mesh_potential_v. Not used for restart
charge_history.csvoutput.write_files=true and output.history_stride>0batch, processed_particles, rel_change, elem_idx, charge_Cresult.history. Not used for restart
potential_history.csvoutput.write_files=true, output.write_potential_history=true, and output.history_stride>0batch, elem_idx, potential_V. Join to the referenceNo dedicated FortranRunResult attribute; read the CSV directly
top_reference_history.csvoutput.write_files=true, output.write_potential_history=true, output.history_stride>0, and a [domain] boxbatch, simulated_time_s, z_high_m, sample_n, potential_mean_V, potential_std_V, potential_min_V, potential_max_VNo dedicated FortranRunResult attribute; read the CSV directly
matching_plane_history.csvoutput.write_files=true, output.history_stride>0, and surface_current_model.model=matching_plane_quasistaticSeventeen-column accepted stateresult.matching_plane_history. Not used for restart
charge_ledger.csvoutput.write_files=true and charge-ledger state is presentTwenty-five columns per speciesresult.charge_ledger. Required for restart when summary has ledger metadata
rng_state.txt / rng_state_rankNNNNN.txtoutput.write_files=true; the former for serial, the latter per MPI rankInternal RNG stateNo FortranRunResult attribute. Required for restart
macro_residuals.csvoutput.write_files=true and macro-particle remainder state is allocatedspecies_idx, face, residualNo FortranRunResult attribute. Schema v8+: required when declared by the manifest
checkpoint_complete.txtoutput.write_files=true for final output and each periodic slotkey=value completion manifest. Meaning and selectionNo FortranRunResult attribute. Required for schema v8+ restart
checkpoint_latest.txtoutput.write_files=true and after a matching accepted-batch commit with output.checkpoint_stride>0Periodic-slot indexCandidate-selection hint, not evidence of completeness
performance_profile.csvBEACH_PROFILE=1 and output.write_files=trueAfter comment lines: region, calls_sum, calls_mean, rank_min_s, rank_mean_s, rank_max_s, imbalance_ratiobeach-plot-performance-profile <output_dir>. Not used for restart

The Python reader requires summary.txt and charges.csv. Other files may be absent according to configuration or runtime state.

summary.txt is a key=value file generated with output.write_files=true.

load_fortran_result(...) converts major values to FortranRunResult attributes; use beach.summary.load_summary_file(...) for untyped receipts.

Run completion and checkpoint completeness are separate conditions.

CheckConditionThis condition does not establish
Requested batches completedbatches == sim.batch_count using summary.txt and the input configurationNumerical convergence or physical validity
Schema v8+ checkpoint is completecheckpoint_complete.txt has state=complete, and the manifest agrees with every required fileCompletion through sim.batch_count
Python reader succeedssummary.txt and charges.csv satisfy the reader contractCheckpoint completeness or physical validity

checkpoint_complete.txt marks completion of a write transaction. An intermediate periodic checkpoint can also have state=complete, so do not use it as evidence that the run reached its requested target. See Validating Simulation Results for numerical and physical acceptance. For a current-schema normal-completion output, require both of the first two conditions in the table.

The tables below list major receipts used to interpret results and decide restart compatibility. They do not claim that every internal diagnostic key in summary.txt is a fixed API. The canonical producer is bem_output_writer.f90; io.py owns the keys converted to typed Python attributes.

ReceiptMeaning
mesh_nelem, mesh_count, mpi_world_sizeMesh and MPI configuration
batches, processed_particles, absorbed, escaped, escaped_boundary, survived_max_stepExecuted work and major particle outcomes
simulated_time_s, last_rel_changeAccepted simulated time and final relative change. last_rel_change is not an early-stop condition
checkpoint_schema_version, checkpoint_strideCheckpoint format generation and resolved output interval
mesh_fingerprintOrdered mesh identity used to map saved charges to elements
reservoir_inflow_map, particle_ordinary_open_modelResolved reservoir and ordinary-open boundary models

The build receipt consists of these five keys.

ReceiptMeaning
build_info_schema_versionBuild-receipt schema
build_versionBEACH version
build_version_modeHow the version was resolved
build_source_commitSource commit
build_idBuild identifier

Diagnose multiple box-boundary events with these five keys.

ReceiptMeaning
multiple_box_events_retry_attemptedNumber of particles for which retry was attempted
multiple_box_events_retry_resolvedNumber of particles resolved by retry
multiple_box_events_soft_discardedNumber of soft-discarded particles
multiple_box_events_soft_discard_fractionSoft-discard fraction of processed_particles
multiple_box_events_soft_discarded_abs_charge_CTotal absolute soft-discarded charge [C]

Field-reconstruction schema v2 provides the receipts needed to reconstruct the runtime electric field. For new output, use result.field_reconstruction instead of inferring settings from a nearby beach.toml.

ReceiptMeaning
field_reconstruction_schema_versionField-reconstruction receipt schema; currently 2
field_reconstruction_resolved_field_solverActual direct, treecode, or fmm selection
field_reconstruction_fmm_expansion_orderFMM expansion order. Schema v2 requires this and the preceding key
field_reconstruction_field_bc_modeResolved free or periodic2 mode
field_reconstruction_e0_V_mResolved uniform external electric field E0
field_reconstruction_use_box, field_reconstruction_box_min_m, field_reconstruction_box_max_mBox presence and bounds
field_reconstruction_boundary_low, field_reconstruction_boundary_highResolved states of the six faces
field_reconstruction_tree_theta, field_reconstruction_tree_leaf_maxTree settings actually used

The periodic-field keys are listed below. See periodic2 Field Model for their physical meaning and solver selection.

ReceiptMeaning
field_reconstruction_periodic_image_layersNumber of near-image shells
field_reconstruction_periodic_far_correctionFar-correction model
field_reconstruction_periodic_nonzero_mode_backendNonzero-mode backend
field_reconstruction_periodic_zero_mode_policyZero-mode policy
field_reconstruction_periodic_lower_boundary_modelLower-boundary model
field_reconstruction_periodic_reference_mode_layersImage layers for the reference nonzero mode
field_reconstruction_periodic_panel_quadrature_orderPanel quadrature order
field_reconstruction_periodic_ewald_alphaEwald splitting parameter
field_reconstruction_periodic_ewald_layersNumber of Ewald layers
field_reconstruction_periodic_cache_dirOperator-cache directory
field_reconstruction_periodic_generation_toleranceOperator-generation tolerance

See Zhao stationary closure for the [surface_current_model] physical model, Type A/B/C, and validity limits. This section defines how to read its receipts.

ReceiptInterpretation
surface_current_model, surface_current_model_zhao_branchSelected model and branch
surface_current_model_kinetic_contractVelocity-space boundary-map contract paired with the Zhao currents
surface_current_model_photoelectron_activeWhether PE channels exist. PE receipts are zero when false
surface_current_model_reference_area_m2Reference area for current targets
surface_current_model_phi0_V, surface_current_model_phi_m_VResolved surface and minimum potentials
surface_current_model_ambient_electron_density_m3Resolved ambient electron density
surface_current_model_electron_current_density_A_m2, surface_current_model_ion_current_density_A_m2Signed electron and ion current densities
surface_current_model_pe_emission_current_density_A_m2, surface_current_model_pe_escape_current_density_A_m2, surface_current_model_pe_return_current_density_A_m2Signed PE current densities. Emission and escape are positive; return is negative
surface_current_model_pe_escape_particle_current_ANegative because it is the signed current carried by outward PE particles
surface_current_model_net_current_density_A_m2Net surface current density over all channels
surface_current_model_pe_budget_residual_current_density_A_m2PE emission-return-escape continuity residual
surface_current_model_surface_budget_residual_current_density_A_m2Stationary surface-current residual
surface_current_model_electron_inflow_reservoir_potential_V, surface_current_model_electron_inflow_access_potential_V, surface_current_model_electron_inflow_faceElectron-inflow reservoir, access potential, and face
surface_current_model_pe_outflow_barrier_potential_V, surface_current_model_pe_outflow_barrier_facePE outflow-barrier potential and face; zero when PE is inactive

Face indices are 1..6 = x_low, x_high, y_low, y_high, z_low, z_high.

For this model, treat the accepted-batch matching-plane receipts listed below as state values instead of using static surface-current targets. See the matching-plane numerical and response-table reference for the canonical fixed-point equations, response CSV, and implicit_zero_mode contract.

Itemmatching_plane_history.csv contract
Generationoutput.write_files=true, output.history_stride>0, and surface_current_model.model=matching_plane_quasistatic
One rowLeading batch, simulated_time_s, followed by the 15 state columns below; only accepted states are written
InterpretationRead the fluxes, barriers, and iteration receipt on one row as one batch’s fixed-point solution
Pythonresult.matching_plane_history; result.matching_plane_state holds the last accepted state
RestartThe CSV is not used. Schema v9 stores the last accepted state in summary.txt
summary.txt receiptmatching_plane_history.csv columnMeaning
matching_plane_displacement_C_m2D_H_C_m2Displacement charge density DHD_H at the matching plane
matching_plane_phi_Vphi_H_VMatching-plane potential ΦH\Phi_H
matching_plane_electron_inward_flux_m2_selectron_inward_flux_m2_sInward electron flux
matching_plane_ion_inward_flux_m2_sion_inward_flux_m2_sInward ion flux
matching_plane_electron_access_potential_Velectron_access_potential_VElectron access potential
matching_plane_ion_access_potential_Vion_access_potential_VIon access potential
matching_plane_photoelectron_barrier_potential_Vphotoelectron_barrier_potential_VPE barrier potential
matching_plane_photoelectron_outward_flux_m2_sphotoelectron_outward_flux_m2_sOutward PE flux fed back to the fixed point
matching_plane_photoelectron_mean_normal_energy_eVphotoelectron_mean_normal_energy_eVPE mean normal energy fed back to the fixed point
matching_plane_electron_outward_flux_m2_selectron_outward_flux_m2_sOutward electron flux fed back to the fixed point
matching_plane_ion_outward_flux_m2_sion_outward_flux_m2_sOutward ion flux fed back to the fixed point
matching_plane_photoelectron_return_flux_m2_sphotoelectron_return_flux_m2_sPE return flux produced by the backend
matching_plane_photoelectron_escape_flux_m2_sphotoelectron_escape_flux_m2_sPE escape flux produced by the backend
matching_plane_iterationsiterationsFixed-point iteration count
matching_plane_residualresidualEffective relative residual at acceptance

The first two history columns are batch and simulated_time_s, giving 17 columns in total. When matching_plane_state_valid is false, do not treat the state receipts listed above as an accepted state.

Check the PE balance within the same batch:

photoelectron_outward_flux_m2_s=photoelectron_return_flux_m2_s+photoelectron_escape_flux_m2_s.\mathtt{photoelectron\_outward\_flux\_m2\_s} =\mathtt{photoelectron\_return\_flux\_m2\_s} +\mathtt{photoelectron\_escape\_flux\_m2\_s}.

The DHD_H and ΦH\Phi_H in each record correspond to the pre-commit surface-charge state used to track that batch. In contrast, simulated_time_s is the time after the trial was accepted and advanced. Do not interpret the record as the post-commit field at the start of the next batch.

ReceiptMeaning
surface_current_model_response_backendtable or zhao_online
surface_current_model_zhao_root_selectionOnline-Zhao root policy: require_unique, minimum_energy, or continuation
surface_current_model_implicit_zero_modeT advances the plane-mean DHD_H with backward Euler; F holds its batch-start value fixed
surface_current_model_matching_plane_z_mMatching-plane z coordinate
surface_current_model_electron_species, surface_current_model_ion_species, surface_current_model_photoelectron_speciesSpecies assigned to each channel
surface_current_model_coupling_rtolRelative tolerance for active components
surface_current_model_coupling_atolFour componentwise absolute tolerances
surface_current_model_coupling_max_iterationsMaximum iteration count
surface_current_model_coupling_relaxationFixed-point relaxation factor
surface_current_model_dynamic_state_sourcesurface_current_model_dynamic_state_source=accepted_batch_fixed_point for committed matching trials. This compatibility string alone does not imply convergence

The four values of surface_current_model_coupling_atol are ordered as follows:

  1. Outward PE flux [m^-2 s^-1]
  2. PE mean normal energy [eV]
  3. Outward electron flux [m^-2 s^-1]
  4. Outward ion flux [m^-2 s^-1]

All default to zero, and inactive components must also remain zero. Each active component uses max(coupling_rtol * backend_scale, coupling_atol) as its threshold. An absolute-tolerance-dominated component is converted to an effective residual, so a converged state’s matching_plane_residual remains no greater than surface_current_model_coupling_rtol. A state committed with an iteration-limit warning exceeds that value and has matching_plane_iterations equal to the configured limit.

BackendReceipt
tablesurface_current_model_response_table_path. All ranks use the table loaded by root; no content fingerprint is written
zhao_onlinesurface_current_model_response_contract=matching_plane_zhao_online_v1
zhao_onlinesurface_current_model_zhao_branch
zhao_onlinesurface_current_model_zhao_root_selection
zhao_onlinesurface_current_model_outer_solver=charge_driven_finite_h_sagdeev
zhao_onlinesurface_current_model_photoelectron_closure=moment_matched_half_maxwellian
zhao_onlinesurface_current_model_ambient_outward_feedback=transparent
zhao_online with require_unique / minimum_energysurface_current_model_outer_solver_state=stateless
zhao_online with continuationsurface_current_model_outer_solver_state=accepted_endpoint_continuation_v2

accepted_endpoint_continuation_v2 is a provenance receipt for the configured ownership rule: only an accepted endpoint seeds the next batch, and a unique nearest root from full multistart is used when local Newton cannot reacquire a nearby root. It does not report the number of full-multistart or step-subdivision evaluations or the root displacement. Use matching_plane_state_valid to determine whether an accepted state exists.

FileGenerationColumns and interpretationPython
charge_history.csvoutput.write_files=true and output.history_stride>0batch, processed_particles, rel_change, elem_idx, charge_C; one snapshot contains all element chargesresult.history
potential_history.csvoutput.write_files=true, output.write_potential_history=true, and output.history_stride>0batch, elem_idx, potential_V; one snapshot contains every element-centroid potentialNo dedicated attribute; read the CSV directly
top_reference_history.csvoutput.write_files=true, output.write_potential_history=true, output.history_stride>0, and a [domain] boxbatch, simulated_time_s, z_high_m, sample_n, potential_mean_V, potential_std_V, potential_min_V, potential_max_VNo dedicated attribute; read the CSV directly
matching_plane_history.csvMatching-plane with stride enabledSeventeen-column accepted stateresult.matching_plane_history

The reference in top_reference_history.csv is the mean over the box z-high face, not infinity or plasma potential. Join it to the same batch in potential_history.csv and compute potential_V - potential_mean_V for element-relative potential.

For matching-plane output, typed result.matching_plane_state and result.matching_plane_history receipts avoid manual column indexing.

Itemmesh_potential.csv contract
Generationoutput.write_files=true and output.write_mesh_potential=true
Columnselem_idx, potential_V
InterpretationPotential [V] at each element centroid
Pythonresult.mesh_potential_v
RestartNot used
Field modelTerms included in the potential
CommonAnalytic P0 triangle-panel self term
Finite periodic2Configured image shell
cached_kneq0Cached nonzero mode plus the configured physical zero mode
Itemcharge_ledger.csv contract
Generationoutput.write_files=true and charge-ledger state is present
One rowSigned charges, corrections, weights, and counts for one species; all 25 columns appear below
PythonChargeLedgerEntry objects in result.charge_ledger
RestartRequired when summary.txt contains ledger metadata

The column order is:

ColumnMeaning
batchBatch represented by the ledger state
species_idxOne-based species index
injected_from_remote_CSigned charge injected from outside [C]
emitted_from_surface_CSigned charge emitted from surfaces [C]
absorbed_on_surface_CSigned charge absorbed by surfaces [C]
escaped_to_infinity_CRaw trajectory escape charge [C]
discarded_unresolved_CSigned charge removed as unresolved [C]
neutral_return_correction_CClosed-PE neutral-return correction [C]
neutral_return_weight_scaleWeight scale used for neutral return
neutral_return_unresolved_fractionUnresolved neutral-return fraction
fixed_absorbed_target_charge_CFixed-current absorption target [C]
fixed_absorbed_weight_scaleWeight scale applied to absorption samples
fixed_emission_target_charge_CFixed-current emission target [C]
fixed_emission_weight_scaleWeight scale applied to emission samples
fixed_current_correction_CCharge added to the surface by the external closure [C]
fixed_absorbed_applied_charge_CCompatibility alias equal to the absorption target
fixed_emission_applied_charge_CCompatibility alias equal to the emission target
fixed_escape_target_charge_CExternal escape target [C]
fixed_escape_applied_charge_CCompatibility alias equal to the escape target
fixed_escape_correction_CDifference between target and raw escape [C]
injected_countInjected macro-particle count
emitted_countSurface-emitted macro-particle count
absorbed_countSurface-absorbed macro-particle count
escaped_countEscaped macro-particle count
discarded_unresolved_countUnresolved-discard macro-particle count
ReceiptMeaning
charge_ledger_nspecies, charge_ledger_batch_countSpecies count and batch represented by the ledger
charge_ledger_surface_charge_before_C, charge_ledger_surface_charge_after_CSurface-charge stock before and after the update
charge_ledger_local_flight_charge_before_C, charge_ledger_local_flight_charge_after_CLocal-flight stock before and after the update
charge_ledger_unresolved_stock_before_C, charge_ledger_unresolved_stock_after_CUnresolved stock before and after the update
charge_ledger_residual_C, charge_ledger_discarded_unresolved_abs_CConservation residual and absolute unresolved charge
charge_ledger_neutral_return_correction_C, charge_ledger_fixed_current_correction_CTotal closure corrections
charge_ledger_fixed_absorbed_applied_charge_C, charge_ledger_fixed_emission_applied_charge_CTotal surface fixed-current targets
charge_ledger_raw_escape_charge_C, charge_ledger_fixed_escape_target_charge_C, charge_ledger_fixed_escape_applied_charge_C, charge_ledger_fixed_escape_correction_CRaw escape, target, compatibility alias, and correction
charge_ledger_fixed_applied_surface_net_charge_CNet charge applied to the surface by fixed current
charge_ledger_fixed_pe_continuity_residual_CFixed-PE continuity residual when PE is active
CheckRead togetherCaution
External escapeescaped_to_infinity_C, fixed_escape_target_charge_C, fixed_escape_correction_CThe raw trajectory value is preserved. The escape correction is not deposited onto surface elements
Conservation residualcharge_ledger_residual_C and the surface / local-flight / unresolved before / after pairs aboveIncludes stocks, external fluxes, neutral return, and fixed-current corrections
fixed_current sampling varianceabsorbed_count, emitted_count, raw charge, fixed_absorbed_weight_scale, fixed_emission_weight_scaleA count of one localizes the whole target onto the element represented by one sample
Closed PERaw absorption and unresolved values, neutral_return_correction_C, neutral_return_unresolved_fractionCheck the unresolved fraction separately even when total surface charge closes

The output aliases for existing readers map to the equal in-memory targets as follows.

Output aliasIn-memory target
fixed_absorbed_applied_charge_Cfixed_absorbed_target_charge_C
fixed_emission_applied_charge_Cfixed_emission_target_charge_C
fixed_escape_applied_charge_Cfixed_escape_target_charge_C

A small conservation residual does not establish elementwise sampling convergence. Test the charge distribution separately across particle or ray counts, batch widths, and RNG seeds. See Check the charge ledger for the basic procedure.

With periodic2.max_nonzero_mode_potential_step > 0, summary.txt records:

ReceiptMeaning
simulated_time_sSimulated time through the accepted trial
periodic2_max_nonzero_mode_potential_step_VConfigured nonzero-mode potential-step limit
adaptive_nonzero_mode_rejected_trialsCumulative rejected-trial count
adaptive_nonzero_mode_last_batch_duration_sDuration of the last accepted batch
adaptive_nonzero_mode_last_potential_step_VNonzero-mode potential step of the last accepted batch
adaptive_nonzero_mode_omp_threadsOpenMP thread count fixed for adaptive restart

Rejected trials do not appear in history files or the charge ledger.

With output.checkpoint_stride > 0, BEACH updates this structure after an accepted-batch commit. Even with output.checkpoint_stride=0, a normal completion writes the final checkpoint.

Here, “complete” means that the transaction containing the restart files is complete. Separately establish completion of the requested run with batches == sim.batch_count using summary.txt and the input configuration.

<output.dir>/
├── checkpoint_complete.txt
├── checkpoint_latest.txt
└── checkpoints/
├── slot0/
└── slot1/
FileRequired whenFormat and role
summary.txtAlwayskey=value statistics, schema, fingerprints, and ledger stocks
charges.csvAlwaysElement charges as elem_idx, charge_C
rng_state.txtSerialRNG array length and state
rng_state_rankNNNNN.txtMPI; one for every rankPer-rank RNG array length and state
macro_residuals.csvDeclared by a schema v8+ manifestspecies_idx, face, residual global macro-particle remainders
charge_ledger.csvSummary / manifest contains ledger metadataTwenty-five-column species ledger
checkpoint_complete.txtSchema v8+schema_version, state, batches, mpi_world_size, macro_residuals_present, charge_ledger_present
StageContract
UpdateFinish the inactive slot before atomically switching checkpoint_latest.txt. At most two generations are retained
SearchInspect the final output under output.restart_from and both slot0 / slot1 directories
SelectionChoose the loadable candidate with all required files and the largest batches value
Index failureRecover a slot with a complete manifest even if checkpoint_latest.txt is missing, malformed, or stale
MismatchStop when required files, the mesh fingerprint, saved-state array shapes, or MPI world size differ. Model and species configuration changes are not compared through hashes

output.restart_from changes only the read source; new output is written to output.dir.

SchemaContract
v6macro_residuals.csv uses species_idx,face,residual; face=0 is the legacy source and 1..6 are boundary faces. The older two-column species_idx,residual form remains readable
v8+Publish state=in_progress before replacing state. Atomically publish state=complete only after closing summary, charges, every rank’s RNG, and manifest-declared residual / ledger files
v9Store accepted matching-plane feedback, potential, return / escape fluxes, and iteration receipts in summary.txt
v10 (current)Remove model, species, and response-content fingerprints. Continue reading v2–v9 and ignore their old identifiers. Preserve mesh identity and state-array formats

For schema v8 and later, checkpoint_complete.txt itself is required. If the final-output directory contains files from different generations, BEACH rejects it and falls back to a complete periodic slot.

Configuration changes are not compared through hashes. BEACH carries saved charges and statistics into the current configuration; compare the configuration files and explicit summary values when assessing changed conditions. A mesh fingerprint mismatch remains fatal because charges.csv rows cannot be mapped safely to different elements. The Python reader retains optional model_fingerprint and species_fingerprint attributes for historical outputs; both are None for current outputs.

Online implicit bracket and step-subdivision nodes are neither a persistent table nor checkpoint state. With continuation, BEACH tries to reconstruct the restart seed from the accepted response saved in summary.txt and falls back to the minimum-energy bootstrap if reconstruction fails. Every policy evaluates the needed response directly from the same Zhao contract, so no matching_query.csv or fingerprint of automatic search points is required.

See Execution and Resume for the actual procedure.

The file-generation table gives each file’s attribute or explicitly states when no dedicated attribute exists. Read representative typed attributes as follows.

from beach import load_fortran_result
result = load_fortran_result("outputs/tutorial")
print(result.charges)
print(result.charge_ledger)
print(result.field_reconstruction)
print(result.matching_plane_state)
OutputPython attribute
charges.csvresult.charges
charge_ledger.csvresult.charge_ledger
Field-reconstruction receiptresult.field_reconstruction
Matching-plane summaryresult.matching_plane_state
matching_plane_history.csvresult.matching_plane_history

summary.txt and charges.csv are required. Mesh, history, ledger, field-reconstruction, and matching-plane state are loaded only when the corresponding output is present.

When matching_plane_state_valid is false, the reader does not expose matching_plane_state or matching_plane_history as an accepted state.

For another case, replace outputs/tutorial with its actual output.dir. See the Python Post-processing API for class and attribute details, and Validating Simulation Results for physical and numerical acceptance.