DifferentialLab Logo

User Documentation

  • Getting Started
    • Requirements
    • Installation
      • Recommended bootstrap scripts
      • Manual setup (already cloned repository)
    • Run the application
    • First run checklist
    • Build docs locally
    • Troubleshooting
  • User Guide
    • Main menu
    • Solve workflow
      • 1. Choose equation type
      • 2. Define equation
      • 3. Configure numeric parameters
      • 4. Solve and inspect
    • Function Transform workflow
    • Complex Problems workflow
    • Exports
    • Configuration workflow
  • Complex Problems Guide
    • Available modules
    • General usage pattern
    • UI notation and text behavior
    • Numerical quality checks
    • Performance guidelines
    • Extending with new plugins
  • Configuration Reference
    • How values are interpreted
    • UI settings
    • Tooltip settings
    • Plot settings
      • Layout and style
      • Markers
      • Phase-space and 3D/contour
      • Animation
    • Matplotlib font settings
    • Solver defaults
    • Logging and update checks
    • Practical recommendations
    • Source of truth
  • FAQ and Troubleshooting
    • The app does not start
    • Tkinter import errors
    • ModuleNotFoundError when running manually
    • Complex problem runs too slowly
    • Numerical blow-up or NaNs
    • Update checks fail
    • Sphinx docs build errors

Developer Documentation

  • Architecture
    • High-level project layout
    • Standard solve path
    • Complex Problems architecture
    • Registered complex problem plugins
    • Configuration lifecycle
    • API and import strategy
    • Error handling and safety
    • Extensibility principles
  • Developer Guide
    • Local environment
    • Repository layout
    • Coding conventions
      • UI text conventions
    • Adding a new complex problem plugin
    • Typical quality loop
    • Useful commands
    • Documentation workflow
    • Release hygiene checklist
  • Testing Guide
    • Test stack
    • Run all tests
    • Run focused suites
    • What to validate before merge
    • Numerical test strategy
    • Common failure patterns
    • CI-ready command sequence
  • Changelog
    • [0.3.2] - 2026-03-05
      • Added

API Reference

  • API Reference
    • main_program – Application Entry Point
      • main()
    • config – Configuration
      • get_current_env_values()
      • get_env()
      • get_env_from_schema()
      • initialize_and_validate_config()
      • write_env_file()
      • generate_output_basename()
      • get_csv_path()
      • get_env_path()
      • get_output_dir()
      • get_project_root()
      • config.constants
      • config.env
        • get_env()
        • get_env_from_schema()
        • get_current_env_values()
        • write_env_file()
        • initialize_and_validate_config()
      • config.paths
        • get_project_root()
        • get_output_dir()
        • generate_output_basename()
        • get_csv_path()
        • get_env_path()
      • config.equations
        • schrodinger_equation()
        • lorentz_system()
        • duffing_oscillator()
        • lotka_volterra()
        • rigid_body_euler()
        • rlc_circuit()
        • gompertz_growth()
        • newton_cooling()
        • linear_decay_source()
        • airy_equation()
        • hermite_ode()
        • laguerre_ode()
        • bessel_ode()
        • stationary_schrodinger_ho()
        • stationary_schrodinger_well()
        • kummer_ode()
        • rabi_oscillations()
        • bloch_equations()
        • rossler_attractor()
        • sir_epidemic()
        • fitzhugh_nagumo()
        • chen_system()
        • brusselator()
        • michaelis_menten()
        • riccati_ode()
        • rayleigh_oscillator()
        • forced_harmonic_oscillator()
        • allee_effect()
        • langmuir_adsorption()
        • thomas_attractor()
        • hindmarsh_rose()
        • rabinovich_fabrikant()
        • chua_circuit()
        • selkov_glycolysis()
        • competitive_lotka_volterra_3()
        • lu_chen()
        • aizawa_attractor()
        • cubic_decay()
        • sqrt_growth()
        • bistable()
        • landau()
        • cubic_oscillator()
        • bernoulli_decay()
        • holling_type2()
        • soft_spring()
        • quadratic_decay()
        • cubic_landau()
        • smooth_decay()
        • gompertz_harvesting()
        • damped_pendulum()
        • lienard()
        • matthew_equation()
        • legendre_ode()
        • blasius_type()
        • emden_fowler()
        • fisher_kpp()
        • malthus_harvesting()
        • relu_activation()
        • tanh_decay()
        • halvorsen_attractor()
        • dadras_attractor()
        • sprott_s()
        • sprott_a()
        • three_species_food_chain()
        • sirs_epidemic()
        • seir_epidemic()
        • oregonator()
        • morris_lecar()
        • wilson_cowan()
        • goodwin_oscillator()
        • t_system()
        • finance_chaos()
        • arneodo()
        • bouali_attractor()
        • nose_hoover()
        • dee_attractor()
        • four_wing()
        • genesi_attractor()
        • qi_chaos()
        • wang_sun_chaos()
        • predator_prey_ratio()
        • leslie_gower()
        • holling_tanner()
        • rossler_hyperchaos()
        • hyperchaos_lorenz()
      • config.difference_equations
        • cobweb_model()
        • ricker_model()
        • beverton_holt()
        • tent_map()
        • third_order_recurrence()
        • gauss_map()
    • solver – ODE, Difference, and PDE Solving Engine
      • solve_difference()
      • get_difference_function()
      • get_ode_function()
      • get_vector_ode_function()
      • parse_pde_rhs_expression()
      • compute_ode_residual_error()
      • FNotation
        • FNotation.kind
        • FNotation.n_components
        • FNotation.order
        • FNotation.n_independent_vars
        • FNotation.component_orders
        • FNotation.state_size()
      • generate_derivative_labels()
      • ODESolution
        • ODESolution.x
        • ODESolution.y
        • ODESolution.success
        • ODESolution.message
        • ODESolution.method_used
        • ODESolution.n_eval
        • ODESolution.raw
      • solve_multipoint()
      • solve_ode()
      • solve_pde_2d()
      • is_multivariate()
      • load_predefined_equations()
      • compute_statistics()
      • compute_statistics_2d()
      • validate_all_inputs()
      • solver.equation_parser
        • get_ode_function()
        • get_difference_function()
        • parse_pde_rhs_expression()
        • get_vector_ode_function()
      • solver.ode_solver
        • ODESolution
        • solve_ode()
        • solve_multipoint()
      • solver.difference_solver
        • DifferenceSolution
        • solve_difference()
      • solver.pde_solver
        • PDESolution
        • solve_pde_2d()
      • solver.error_metrics
        • compute_ode_residual_error()
      • solver.predefined
        • PredefinedEquation
        • load_predefined_equations()
        • is_multivariate()
      • solver.notation
        • FNotation
        • generate_derivative_labels()
        • generate_phase_space_options()
      • solver.statistics
        • compute_statistics()
        • compute_statistics_2d()
      • solver.validators
        • validate_all_inputs()
    • plotting – Visualization
      • create_contour_plot()
      • create_energy_evolution_plot()
      • create_energy_per_mode_plot()
      • create_phase_3d_plot()
      • create_phase_plot()
      • create_solution_plot()
      • create_surface_plot()
      • create_vector_animation_3d()
      • create_vector_animation_plot()
      • export_animation_to_mp4()
      • plotting.plot_utils
        • create_solution_plot()
        • create_energy_evolution_plot()
        • create_energy_per_mode_plot()
        • create_phase_plot()
        • create_phase_3d_plot()
        • create_surface_plot()
        • create_contour_plot()
        • create_vector_animation_plot()
        • create_vector_animation_3d()
        • export_animation_to_mp4()
    • pipeline – Solver Pipeline
      • SolverResult
        • SolverResult.x
        • SolverResult.y
        • SolverResult.statistics
        • SolverResult.metadata
        • SolverResult.equation_type
        • SolverResult.y_grid
        • SolverResult.is_vector
        • SolverResult.vector_components
        • SolverResult.vector_order
        • SolverResult.notation
      • run_solver_pipeline()
    • transforms – Function Transforms
      • parse_scalar_function()
      • DisplayMode
        • DisplayMode.CURVE
        • DisplayMode.COEFFICIENTS
      • TransformKind
        • TransformKind.ORIGINAL
        • TransformKind.FOURIER
        • TransformKind.LAPLACE
        • TransformKind.TAYLOR
        • TransformKind.HILBERT
        • TransformKind.Z_TRANSFORM
      • apply_transform()
      • compute_function_samples()
      • get_transform_coefficients()
      • transforms.function_parser
        • parse_scalar_function()
      • transforms.transform_engine
        • TransformKind
        • DisplayMode
        • compute_function_samples()
        • apply_transform()
        • get_transform_coefficients()
    • complex_problems – Specialized Plugin Workflows
      • ProblemDescriptor
        • ProblemDescriptor.id
        • ProblemDescriptor.name
        • ProblemDescriptor.description
      • get_problem_descriptors()
      • open_problem_dialog()
      • Registry and dialog
        • ProblemRegistration
        • ProblemRegistry
        • open_problem_dialog()
        • get_problem_descriptors()
        • ComplexProblemsDialog
      • Common helpers
        • compile_scalar_expression()
        • run_solver_with_loading()
        • add_how_to_config_section()
        • parse_float()
        • parse_int()
        • parse_positive_float()
        • parse_positive_int()
        • run_solver_with_loading()
        • compile_scalar_expression()
        • add_how_to_config_section()
        • parse_int()
        • parse_positive_int()
        • parse_float()
        • parse_positive_float()
      • Problem documentation metadata
        • ProblemDoc
        • get_problem_doc()
        • get_all_problem_docs()
      • coupled_oscillators
        • build_ode_function()
        • solve_coupled_oscillators()
        • build_ode_function()
        • compute_normal_modes()
        • CoupledOscillatorsResult
        • solve_coupled_oscillators()
        • CoupledOscillatorsDialog
        • CoupledOscillatorsResultDialog
      • membrane_2d
        • solve_membrane_2d()
        • laplacian_2d()
        • apply_fixed_boundary()
        • acceleration_field()
        • build_initial_displacement()
        • compute_energy_terms()
        • compute_fft_power_2d()
        • Membrane2DResult
        • solve_membrane_2d()
        • resolve_optional_membrane_terms()
        • Membrane2DDialog
        • Membrane2DResultDialog
      • nonlinear_waves
        • solve_nonlinear_waves()
        • build_periodic_grid()
        • build_initial_profile()
        • compute_nlse_invariants()
        • compute_kdv_invariants()
        • NonlinearWavesResult
        • solve_nonlinear_waves()
        • NonlinearWavesDialog
        • NonlinearWavesResultDialog
      • schrodinger_td
        • solve_schrodinger_td()
        • normalize_wavefunction_1d()
        • normalize_wavefunction_2d()
        • build_absorbing_mask_1d()
        • build_absorbing_mask_2d()
        • potential_1d()
        • potential_2d()
        • initial_packet_1d()
        • initial_packet_2d()
        • SchrodingerTDResult
        • solve_schrodinger_td()
        • SchrodingerTDDialog
        • SchrodingerTDResultDialog
      • antenna_radiation
        • solve_antenna_radiation()
        • build_angular_grid()
        • pattern_dipole()
        • pattern_small_loop()
        • pattern_patch()
        • pattern_uniform_linear_array()
        • antenna_pattern()
        • normalize_pattern()
        • compute_directivity()
        • estimate_beamwidth_deg()
        • estimate_aperture_lambda()
        • to_db10()
        • wrap_angle_deg()
        • degrees()
        • wavelength_from_frequency()
        • far_field_distance_min()
        • e_from_power_density()
        • h_from_e_field()
        • compute_reaction_metrics()
        • AntennaRadiationResult
        • solve_antenna_radiation()
        • AntennaRadiationDialog
        • AntennaRadiationResultDialog
      • aerodynamics_2d
        • solve_aerodynamics_2d()
        • build_periodic_domain()
        • rotate_coordinates()
        • build_obstacle_mask()
        • ddx_periodic()
        • ddy_periodic()
        • laplacian_periodic()
        • divergence_periodic()
        • vorticity_periodic()
        • Aerodynamics2DResult
        • solve_aerodynamics_2d()
        • Aerodynamics2DDialog
        • Aerodynamics2DResultDialog
      • pipe_flow
        • solve_pipe_flow()
        • build_pipe_grid()
        • diameter_profile()
        • area_from_diameter()
        • reynolds_number()
        • friction_factor()
        • PipeFlowResult
        • solve_pipe_flow()
        • PipeFlowDialog
        • PipeFlowResultDialog
    • frontend – GUI
      • MainMenu
      • frontend.theme
        • get_contrast_foreground()
        • get_select_colors()
        • get_font()
        • configure_ttk_styles()
      • frontend.window_utils
        • center_window()
        • fit_and_center()
        • make_modal()
        • bind_wraplength()
      • frontend.plot_embed
        • embed_animation_plot_in_tk()
        • embed_plot_in_tk()
      • frontend.ui_main_menu
        • MainMenu
      • frontend.ui_dialogs
        • setup_arrow_enter_navigation()
        • ToolTip
        • frontend.ui_dialogs.equation_dialog
        • frontend.ui_dialogs.parameters_dialog
        • frontend.ui_dialogs.result_dialog
        • frontend.ui_dialogs.config_dialog
        • frontend.ui_dialogs.loading_dialog
        • frontend.ui_dialogs.help_dialog
        • frontend.ui_dialogs.scrollable_frame
        • frontend.ui_dialogs.collapsible_section
        • frontend.ui_dialogs.tooltip
        • frontend.ui_dialogs.keyboard_nav
        • frontend.ui_dialogs.transform_dialog
    • utils – Utilities
      • DifferentialLabError
      • EquationParseError
      • SolverFailedError
      • ValidationError
      • build_eval_namespace()
      • export_csv_to_path()
      • export_json_to_path()
      • get_logger()
      • normalize_params()
      • normalize_unicode_escapes()
      • safe_eval()
      • validate_exclusive_args()
      • validate_expression_ast()
      • is_update_available()
      • perform_git_pull()
      • record_check_done()
      • should_run_check()
      • utils.exceptions
        • DifferentialLabError
        • ValidationError
        • EquationParseError
        • SolverFailedError
      • utils.expression_parser_shared
        • normalize_unicode_escapes()
        • normalize_params()
        • build_eval_namespace()
        • safe_eval()
        • validate_exclusive_args()
        • validate_expression_ast()
      • utils.export
        • export_csv_to_path()
        • export_json_to_path()
      • utils.logger
        • get_logger()
      • utils.update_checker
        • should_run_check()
        • record_check_done()
        • is_update_available()
        • perform_git_pull()
DifferentialLab
  • Search


© Copyright 2026, Alejandro Mata Ali.

Built with Sphinx using a theme provided by Read the Docs.