ode_vector_field_grid — MATH dynsys op

• Data kinds: कोई नहीं → flow2d (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.ode_vector_field_grid(system='rossler', params=None, bounds=(-10.0, 10.0, -10.0, 10.0), shape=(64, 64), plane='xy', offset=0.0) (implementation को सीधे call करना हो तो import mathops; mathops.ode_vector_field_grid(system='rossler', params=None, bounds=(-10.0, 10.0, -10.0, 10.0), shape=(64, 64), plane='xy', offset=0.0), registry से लेना हो तो opsmath.get("ode_vector_field_grid"))

उपयोग

नाम वाले field को grid पर sample करता है — एक flow2d जिसे मौजूदा viewers लेते हैं।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Returns (2, H, W) with components (dy, dx) — the library's flow2d layout — so the existing flow2d viewers render it with no new drawing code: piv_flow_to_rgbimage (colour wheel), piv_flow_magnitude and piv_line_integral_convolution (texture along the flow), piv_quiver (arrows) and piv_streamline_image / piv_streamlines (evenly spaced streamlines). (★2026-10-03: this docstring used to name "quiver, streamlines, flow_magnitude" before any quiver or streamline op existed; they were added the same day. fs.flow_magnitude takes two components, not a flow2d array.) For a 3-D system, *plane* picks the slice (xy / xz / yz) and *offset* fixes the third coordinate.

★Why this earns its place: it is the bridge that keeps this family from growing its own renderer. The vectors are the same _dyn_derivative the integrator uses, so what you see is what gets integrated.

★The layout is channel-first, not the (H, W, 2) that reads more naturally here: flow2d is an existing type with an existing predicate and existing consumers, and a row that declares flow2d while returning the transpose is a type lie the fuzzer catches (it did —— 2026-09-23). Row 0 is the top (the image convention), so the vertical component is negated to match what the viewer draws.

Raises ValueError: unknown system or plane; a grid over the cap; non-finite bounds; a degenerate window.

पूरी family का input contract (fail-closed)

mathops के सभी ops गणना से पहले input की जाँच करते हैं (कुछ भी चुपचाप पास नहीं होता):

• complex input से ValueError — float64 में ज़बरदस्ती बदलने पर imaginary part चुपचाप छूट जाता है (numpy केवल ComplexWarning देता है और "सही दिखने वाला पर गलत" real number लौटाता है)। .real/.imag/abs() स्पष्ट रूप से लिखें, या complex data संभालने वाले complexops का उपयोग करें।

• masked array (masked elements वाला) से ValueError — mask हटाकर नीचे के raw values इस्तेमाल करने वाला implicit conversion अस्वीकार है। भरना है या हटाना है, यह स्पष्ट रूप से बताएँ।

• हर input पर NaN/Inf से ValueError (गिनती बताकर अस्वीकार — क्योंकि यह पूरे परिणाम में फैल जाता है)।

• Shape सख़्त है: 1-D और 2-D को implicit रूप से promote या broadcast नहीं किया जाता (vector slot में matrix या matrix slot में vector देने पर ValueError; reshape स्पष्ट रूप से करें)।

• Size की सीमा: matrix लेने वाले ops और stat_histogram के bins, mathops.MAX_ELEMENTS (2^26 ≈ 6.7 करोड़ elements) से अधिक होने पर ValueError देते हैं।

उपयोग की विस्तृत guide

• math_metrology family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_what_a_picture_cannot_check — py -3.11 examples/poc_what_a_picture_cannot_check.py

वे अगले ops जिनसे type जुड़ता है (flow2d को input के रूप में लेते हैं)

—

इसी category के (dynsys)

ode_flow_states · dynsys_poincare_section · dynsys_lyapunov_spectrum · dynsys_bifurcation_map · dynsys_correlation_dimension


*Provenance: mathops.py — MATH operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.