property¶
Shared scheduling and property callback utilities.
- class kmcpy.simulator.property.PropertyPlan(interval=None, time_interval=None, builtin_enabled=None)[source]¶
Property sampling recipe for a KMC run.
The plan stores user intent: global cadence, enabled built-in fields, and custom callback registrations. Runtime sampling state and stored records belong to the Tracker.
- attach(func, interval=None, time_interval=None, name=None, store=True, max_records=None, on_error=None, enabled=True)[source]¶
Register a custom property callback in the plan.
- Return type:
str
- property builtin_enabled: dict[str, bool]¶
Return a copy of built-in property enablement flags.
- clear_attachments()[source]¶
Remove all custom callbacks while preserving built-in settings.
- Return type:
None
- fresh_attachment_specs()[source]¶
Return callback specs with runtime sampling counters reset.
Trackers mutate
last_trigger_stepandlast_trigger_timewhile sampling, so each run must receive fresh spec objects.- Return type:
list[PropertySpec]
- property global_interval: int | None¶
Return the configured global step interval.
- property global_time_interval: float | None¶
Return the configured global simulation-time interval.
- list_property_calculations()[source]¶
Return enabled/disabled built-ins and custom callbacks.
- Return type:
dict[str,list[str]]
- class kmcpy.simulator.property.PropertyRecord(name, step, time, value)[source]¶
Stored callback output for one sampling point.
- class kmcpy.simulator.property.PropertySpec(name, callback, interval=None, time_interval=None, store=True, max_records=None, enabled=True, on_error=None, last_trigger_step=0, last_trigger_time=None)[source]¶
Property callback registration metadata.
- kmcpy.simulator.property.append_record(records, spec, step, sim_time, value)[source]¶
Append one callback record and enforce record limits.
- Return type:
None
- kmcpy.simulator.property.compute_transport_properties(displacement, hop_counter, *, sim_time, dimension, n_mobile_ion_specie, elementary_hop_distance, volume, mobile_ion_charge, temperature, enabled=None)[source]¶
Compute built-in transport properties from trajectory state.
- Return type:
dict[str,float]
- Unit conventions:
displacement: Angstrom sim_time: s elementary_hop_distance: Angstrom volume: Angstrom^3 mobile_ion_charge: units of the absolute elementary charge temperature: K
- Returned units are defined by
TRANSPORT_PROPERTY_UNITS: msd: Angstrom^2 jump_diffusivity: cm^2/s tracer_diffusivity: cm^2/s conductivity: mS/cm havens_ratio: dimensionless correlation_factor: dimensionless
- kmcpy.simulator.property.describe_property_calculations(*, builtin_enabled, attached_properties)[source]¶
Return enabled/disabled built-ins and custom callbacks.
- Return type:
dict[str,list[str]]
- kmcpy.simulator.property.make_property_spec(func, *, interval=None, time_interval=None, name=None, store=True, max_records=None, on_error=None, enabled=True, existing_names=None)[source]¶
Validate callback metadata and return a property sampling spec.
- Return type:
- kmcpy.simulator.property.set_property_enabled_flag(*, builtin_enabled, attached_properties, name, enabled)[source]¶
Enable or disable one built-in metric or custom callback.
- Return type:
None
- kmcpy.simulator.property.should_trigger(step, sim_time, interval, time_interval, last_trigger_time)[source]¶
Return whether a scheduled property should execute.
- Return type:
bool