Skip to content

Latest commit

 

History

History
74 lines (55 loc) · 3.16 KB

File metadata and controls

74 lines (55 loc) · 3.16 KB

Complex Problems Guide

Complex Problems is a plugin subsystem where each problem contributes:

  • problem.py descriptor and dialog entry point
  • ui.py configuration dialog
  • solver.py specialized numerical model
  • result_dialog.py custom visualization tabs
  • optional model.py helpers

Available modules

ID Name Core model Typical outputs
coupled_oscillators Coupled Harmonic Oscillators 1D oscillator chain with linear/nonlinear couplings mode energies, phase-space, recurrence behavior
membrane_2d 2D Nonlinear Membrane discrete 2D lattice membrane displacement animation, energy drift, 2D FFT
nonlinear_waves Nonlinear Waves (NLSE + KdV) split-step / pseudo-spectral propagation space-time map, phase/spectrum, invariants
schrodinger_td Schrodinger TD (1D/2D) split-operator spectral TDSE density/phase evolution, expectation values
antenna_radiation Antenna Radiation far-field analytical radiation patterns gain/directivity maps, polar cuts, E/H fields
aerodynamics_2d Aerodynamics 2D incompressible flow with projection + obstacle penalization speed/vorticity maps, Cd/Cl curves
pipe_flow Pipe Flow steady Darcy-Weisbach and transient 1D pressure-wave model pressure/velocity profiles, Reynolds/friction metrics

General usage pattern

  1. Open Complex Problems from main menu.
  2. Pick a module from the left list.
  3. Review the right-side details panel (type, description, configurable options, outputs).
  4. Open the selected module.
  5. Expand How to configure (collapsed by default) if needed.
  6. Configure model-specific parameters.
  7. Run solve (background execution + loading dialog).
  8. Explore module-specific tabs and diagnostics.

UI notation and text behavior

  • Mathematical labels use Unicode notation when possible (xₘᵢₙ, tₘₐₓ, Nₓ, ...).
  • If a true Unicode subscript is not available, use base_subscript with Unicode symbol, e.g. N_θ, N_φ.
  • Static explanatory text is shown as non-editable labels (not copy-oriented text boxes).
  • Intentional copy-friendly Unicode helper blocks remain in custom-equation / transform workflows.

Numerical quality checks

Most modules expose magnitude checks in results:

  • conservation drift (energy_drift_rel, norm_drift_rel, etc.)
  • stability indicators (CFL-like constraints, divergence, max amplitude)
  • physical metrics (gain/directivity peaks, drag/lift summaries)

Use these before trusting conclusions from very aggressive settings.

Performance guidelines

  • Increase grid resolution only after validating lower-cost runs.
  • Keep dt conservative for nonlinear or wave-dominated models.
  • Prefer default integrators first; compare alternatives after baseline validation.
  • For 2D models, tune both spatial resolution and output sampling cadence.

Extending with new plugins

Follow the package pattern:

src/complex_problems/<plugin_name>/
  __init__.py
  problem.py
  ui.py
  solver.py
  result_dialog.py
  model.py (optional)

Then register the plugin in src/complex_problems/problem_registry.py.

Detailed implementation guidance is in Developer Guide.