Class WaveEquation2D

  • All Implemented Interfaces:
    PDE

    public class WaveEquation2D
    extends Object
    implements PDE
    A two-dimensional wave equation is a hyperbolic PDE that takes the following form. \[ \frac{\partial^2 u}{\partial t^2} = \beta (\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2}) \] with fixed boundary condition, that is, \[ u(t, 0, 0) = u(t, a, 0) = u(t, 0, b) = u(t, a, b) = 0 \] and two initial conditions, namely \(u\) and its first time derivative \(u_t\): \[ u(0, x, y) = f(x, y), 0 < x < a, 0 < y < b \\ u_t(0, x, y) = g(x, y), 0 < x < a, 0 < y < b \]
    See Also:
    Wikipedia: Wave equation
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double a()
      Get the size of the two-dimensional space along the x-axis, that is, the range of x, (0 < x < a).
      double b()
      Get the size of the two-dimensional space along the y-axis, that is, the range of y, (0 < y < b).
      double beta()
      Get the value of the wave coefficient β
      double f​(double x, double y)
      Get the initial condition of u at the given point (x,y).
      double g​(double x, double y)
      Get the initial condition of the time derivative of u at the given point (x,y).
      double T()
      Get the time period of interest, that is, the range of t, (0 < t < T).
    • Constructor Detail

      • WaveEquation2D

        public WaveEquation2D​(double beta,
                              double T,
                              double a,
                              double b,
                              BivariateRealFunction f,
                              BivariateRealFunction g)
        Create a two-dimensional wave equation.
        Parameters:
        beta - the beta in the equation
        T - the time period of interest (0, T)
        a - the size of the region along the x-axis, x ∈ (0, a)
        b - the size of the region along the y-axis y ∈ (0, b)
        f - the initial condition of u, i.e., u(0, x, y)
        g - the initial condition of the time-derivative of u, i.e., ut(0,x,y)
    • Method Detail

      • beta

        public double beta()
        Get the value of the wave coefficient β
        Returns:
        the wave coefficient β
      • T

        public double T()
        Get the time period of interest, that is, the range of t, (0 < t < T).
        Returns:
        the time period of interest
      • a

        public double a()
        Get the size of the two-dimensional space along the x-axis, that is, the range of x, (0 < x < a).
        Returns:
        the size of the space along the x-axis
      • b

        public double b()
        Get the size of the two-dimensional space along the y-axis, that is, the range of y, (0 < y < b).
        Returns:
        the size of the space along the y-axis
      • f

        public double f​(double x,
                        double y)
        Get the initial condition of u at the given point (x,y).
        Parameters:
        x - the x-coordinate
        y - the y-coordinate
        Returns:
        u(0, x, y)
      • g

        public double g​(double x,
                        double y)
        Get the initial condition of the time derivative of u at the given point (x,y).
        Parameters:
        x - the x-coordinate
        y - the y-coordinate
        Returns:
        ut(0, x, y)