Class WaveEquationSolver
java.lang.Object
org.episteme.core.mathematics.analysis.pde.WaveEquationSolver
1D Wave equation solver: ∂²u/∂t² = c² ∂²u/∂x²
Uses explicit finite difference (leapfrog) scheme.
References:
- Courant, R., Friedrichs, K., invalid input: '&' Lewy, H. (1928). Über die partiellen Differenzengleichungen der mathematischen Physik. Mathematische Annalen, 100(1), 32-74.
- Trefethen, L. N. (2000). Spectral Methods in MATLAB. SIAM.
- Since:
- 1.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Constructor Summary
ConstructorsConstructorDescriptionWaveEquationSolver(int nx, double length, double waveSpeed) WaveEquationSolver(int nx, Real length, Real waveSpeed) -
Method Summary
Modifier and TypeMethodDescriptionstatic WaveEquationSolvergaussianPulse(int nx, Real length, Real waveSpeed, Real center, Real width) Gaussian pulse.intgetSize()Real[]getTime()getValue(int i) getX(int i) static WaveEquationSolverpluckedString(int nx, Real length, Real waveSpeed, Real pluckPosition, Real pluckHeight) Plucked string: triangular initial displacement.voidSet initial displacement and velocity.voidSet initial displacement.voidRun for specified total time.voidAdvance by one time step using leapfrog scheme.voidstepFreeBoundary(Real dt) Step with free boundary conditions (∂u/∂x = 0).totalEnergy(Real dt) Total energy (kinetic + potential) - should be conserved.
-
Constructor Details
-
WaveEquationSolver
-
WaveEquationSolver
public WaveEquationSolver(int nx, double length, double waveSpeed)
-
-
Method Details
-
setInitialDisplacement
-
setInitialConditions
-
step
Advance by one time step using leapfrog scheme. CFL condition: dt invalid input: '<'= dx/c for stability. -
stepFreeBoundary
Step with free boundary conditions (∂u/∂x = 0). -
solve
-
getSolution
-
getValue
-
getTime
-
getSize
public int getSize() -
getX
-
totalEnergy
-
pluckedString
public static WaveEquationSolver pluckedString(int nx, Real length, Real waveSpeed, Real pluckPosition, Real pluckHeight) Plucked string: triangular initial displacement. -
gaussianPulse
public static WaveEquationSolver gaussianPulse(int nx, Real length, Real waveSpeed, Real center, Real width) Gaussian pulse.
-