swarm_simulate — DRIVE swarmflow op

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

• Call: import fullseye as fs; fs.ledger.swarm_simulate(obstacle=None, speed: 'float' = 1.0, box=(8.0, 5.0), spacing: 'float' = 0.15, h_factor: 'float' = 1.3, tau: 'float' = 0.1, c: 'float' = 10.0, alpha: 'float' = 0.5, t_warm: 'float' = 2.0, n_frames: 'int' = 20, frame_dt: 'float' = 0.06, noise: 'float' = 0.0, seed: 'int' = 0) -> 'dict' (implementation को सीधे call करना हो तो import swarmflow; swarmflow.swarm_simulate(obstacle=None, speed: 'float' = 1.0, box=(8.0, 5.0), spacing: 'float' = 0.15, h_factor: 'float' = 1.3, tau: 'float' = 0.1, c: 'float' = 10.0, alpha: 'float' = 0.5, t_warm: 'float' = 2.0, n_frames: 'int' = 20, frame_dt: 'float' = 0.06, noise: 'float' = 0.0, seed: 'int' = 0) -> 'dict', registry से लेना हो तो opsdrive.get("swarm_simulate"))

उपयोग

बाधाओं वाले periodic channel में बहता झुंड (weakly compressible SPH fluid की तरह चलने वाले सदस्य)। बाधाएँ सदस्यों पर केवल "टकराने वाली दीवार" की तरह असर करती हैं।

व्यक्ति i का त्वरण = (U e_x − v_i)/τ (मुक्त-धारा की गति पर लौटना) − Σ_j m (p_i/ρ_i² + p_j/ρ_j²) ∇W_ij (दबाव = एक-दूसरे को धकेलना) − Σ_j m Π_ij ∇W_ij (Monaghan कृत्रिम श्यानता, केवल पास आते जोड़ों के लिए) + उतार-चढ़ाव (मानक विचलन noise [m/s²] वाला श्वेत शोर)।

दीवार: वृत्त के भीतर घुसे व्यक्ति को सतह पर लौटाया जाता है और केवल भीतर की ओर का वेग हटाया जाता है (फिसलन दीवार)। आवर्ती सीमाएँ (x और y दोनों)। समाकलन symplectic Euler है, चरण CFL 0.25 h/(c + U) है। जब U τ ≪ R और c ≫ U हो, स्थिर प्रवाह बेलन के चारों ओर विभव प्रवाह के निकट होता है (व्युत्पत्ति module docstring में)।

Args:

obstacle: (xc, yc, R) [m] या None (कोई बाधा नहीं)।

speed: मुक्त-धारा गति U [m/s]।

box: प्रवाह-पथ का आकार (Lx, Ly) [m], केंद्र मूलबिंदु पर।

spacing: प्रारंभिक जाली अंतराल [m] (व्यक्तियों के बीच दूरी)।

h_factor: h = h_factor × spacing।

tau: गति पर लौटने का समय-स्थिरांक [s]।

c: ध्वनि की गति [m/s] (धकेलने की कठोरता)।

alpha: कृत्रिम श्यानता का गुणांक।

t_warm: रिकॉर्डिंग से पहले चलाने का समय [s] (स्थिर अवस्था के निकट लाने के लिए)।

n_frames: रिकॉर्ड करने वाले फ़्रेमों की संख्या (≥ 2)।

frame_dt: फ़्रेम अंतराल [s]।

noise: त्वरण का उतार-चढ़ाव [m/s²]।

seed: यादृच्छिक बीज।

Returns:

dict: frames (T, N, 2) स्थितियाँ [m] (बॉक्स के भीतर मोड़ी जा चुकीं), velocities (T, N, 2), t (T,), box,

obstacle, h, dt, rho0, density_range (रिकॉर्डिंग के दौरान ρ/ρ₀ के 1-99 % बिंदु), n_agents,

t_total (चलाया गया समय), t_wake_reenters (वह समय जब बाधा के पीछे का रिक्त स्थान बॉक्स के दाएँ किनारे से बाएँ किनारे पर घूमकर आना शुरू करता है,

(Lx/2 − x_c − R)/U। इससे अधिक चलाने पर ऊर्ध्वधारा वाले किनारे पर रिक्त स्थान के व्यक्ति प्रवेश करते हैं और मुक्त धारा दूषित होती है)।

★बाधा के पीछे एक लंबा रिक्त स्थान फैलता है जिसमें व्यक्ति प्रवेश नहीं करते (धकेलने का दबाव इतना कमज़ोर है कि खींचता नहीं, और व्यक्ति केवल प्रतिरोध से U पर लौटते हैं, इसलिए वह बगल से भरता नहीं)। ऊपर से लिए गए वीडियो में बाधा वाली जगह का "छेद" और रिक्त स्थान स्वयं दिखाई देते हैं —— केवल वेग से अनुमान लगाने के दावे का अर्थ है कि अनुमान इस छेद का उपयोग नहीं करता (इसे वेग-क्षेत्र में अनुपलब्ध मान के रूप में छोड़ देता है), न कि यह कि वीडियो में बाधा का कोई संकेत नहीं है।

संदर्भ (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_swarm_obstacle_from_flow — py -3.11 examples/poc_swarm_obstacle_from_flow.py

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

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

इसी category के (swarmflow)

sph_kernel · sph_density_pressure · swarm_render_overhead · swarm_field_from_tracks · swarm_field_from_piv · potential_flow_cylinder · velocity_deficit_map · stagnation_from_centerline


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

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