Solver API
Unified API for PDE solving and visualization.
This module provides a clean, professional interface for solving different types of PDEs with flexible boundary conditions and initial conditions.
- class pdevisualizer.solver.EquationType(value)[source]
Bases:
EnumSupported PDE types.
- HEAT = 'heat'
- WAVE = 'wave'
- class pdevisualizer.solver.BoundaryCondition(boundary_type, value=0.0)[source]
Bases:
objectBoundary condition specification - Enhanced version.
Methods
Absorbing boundary condition (for waves).
dirichlet([value])Fixed value boundary condition.
neumann([flux])Fixed flux boundary condition (insulated if flux=0).
periodic()Periodic boundary condition.
Convert to BoundarySpec for the boundary_conditions module.
- Parameters:
boundary_type (BoundaryType)
value (float)
- class pdevisualizer.solver.InitialConditions[source]
Bases:
objectHelper class for creating common initial conditions.
Methods
circular_wave(shape, center, radius[, amplitude])Circular wave initial condition.
constant(shape, value)Constant field initial condition.
gaussian_pulse(shape, center, sigma[, amplitude])Gaussian pulse initial condition.
multiple_sources(shape, sources)Multiple point sources initial condition.
sine_wave(shape, wavelength[, amplitude, ...])Sinusoidal wave initial condition.
zeros(shape)Zero initial condition.
- static gaussian_pulse(shape, center, sigma, amplitude=1.0)[source]
Gaussian pulse initial condition.
- static circular_wave(shape, center, radius, amplitude=1.0)[source]
Circular wave initial condition.
- class pdevisualizer.solver.PDESolver(equation, grid_shape=(100, 100), spacing=(1.0, 1.0), boundary=None)[source]
Bases:
objectUnified interface for solving 2D partial differential equations.
This class provides a clean, professional API for solving heat and wave equations with flexible boundary conditions and initial conditions.
Methods
animate([frames, interval, save_path])Create an animation of the PDE solution.
Get stability condition information for current parameters.
info()Get a summary of the current solver configuration.
set_initial_conditions(u0[, v0])Set initial conditions for the PDE.
set_parameters(**params)Set equation-specific parameters.
solve([steps])Solve the PDE for the specified number of time steps.
Validate that current parameters satisfy stability conditions.
Initialize the PDE solver.
Methods
animate([frames, interval, save_path])Create an animation of the PDE solution.
Get stability condition information for current parameters.
info()Get a summary of the current solver configuration.
set_initial_conditions(u0[, v0])Set initial conditions for the PDE.
set_parameters(**params)Set equation-specific parameters.
solve([steps])Solve the PDE for the specified number of time steps.
Validate that current parameters satisfy stability conditions.
- Parameters:
equation (str | EquationType)
boundary (BoundaryCondition | None)
- __init__(equation, grid_shape=(100, 100), spacing=(1.0, 1.0), boundary=None)[source]
Initialize the PDE solver.
- Parameters:
equation (str | EquationType)
boundary (BoundaryCondition | None)
- set_parameters(**params)[source]
Set equation-specific parameters.
For heat equation: alpha (thermal diffusivity), dt (time step) For wave equation: c (wave speed), dt (time step)
PDESolver Class
- class pdevisualizer.solver.PDESolver(equation, grid_shape=(100, 100), spacing=(1.0, 1.0), boundary=None)[source]
Bases:
objectUnified interface for solving 2D partial differential equations.
This class provides a clean, professional API for solving heat and wave equations with flexible boundary conditions and initial conditions.
Methods
animate([frames, interval, save_path])Create an animation of the PDE solution.
Get stability condition information for current parameters.
info()Get a summary of the current solver configuration.
set_initial_conditions(u0[, v0])Set initial conditions for the PDE.
set_parameters(**params)Set equation-specific parameters.
solve([steps])Solve the PDE for the specified number of time steps.
Validate that current parameters satisfy stability conditions.
Initialize the PDE solver.
Methods
animate([frames, interval, save_path])Create an animation of the PDE solution.
Get stability condition information for current parameters.
info()Get a summary of the current solver configuration.
set_initial_conditions(u0[, v0])Set initial conditions for the PDE.
set_parameters(**params)Set equation-specific parameters.
solve([steps])Solve the PDE for the specified number of time steps.
Validate that current parameters satisfy stability conditions.
- Parameters:
equation (str | EquationType)
boundary (BoundaryCondition | None)
- __init__(equation, grid_shape=(100, 100), spacing=(1.0, 1.0), boundary=None)[source]
Initialize the PDE solver.
- Parameters:
equation (str | EquationType)
boundary (BoundaryCondition | None)
- set_parameters(**params)[source]
Set equation-specific parameters.
For heat equation: alpha (thermal diffusivity), dt (time step) For wave equation: c (wave speed), dt (time step)
EquationType
BoundaryCondition
- class pdevisualizer.solver.BoundaryCondition(boundary_type, value=0.0)[source]
Boundary condition specification - Enhanced version.
Methods
Absorbing boundary condition (for waves).
dirichlet([value])Fixed value boundary condition.
neumann([flux])Fixed flux boundary condition (insulated if flux=0).
periodic()Periodic boundary condition.
Convert to BoundarySpec for the boundary_conditions module.
- Parameters:
boundary_type (BoundaryType)
value (float)
InitialConditions
- class pdevisualizer.solver.InitialConditions[source]
Helper class for creating common initial conditions.
Methods
circular_wave(shape, center, radius[, amplitude])Circular wave initial condition.
constant(shape, value)Constant field initial condition.
gaussian_pulse(shape, center, sigma[, amplitude])Gaussian pulse initial condition.
multiple_sources(shape, sources)Multiple point sources initial condition.
sine_wave(shape, wavelength[, amplitude, ...])Sinusoidal wave initial condition.
zeros(shape)Zero initial condition.
- static gaussian_pulse(shape, center, sigma, amplitude=1.0)[source]
Gaussian pulse initial condition.
- static circular_wave(shape, center, radius, amplitude=1.0)[source]
Circular wave initial condition.