class ParabolicPDE extends Error
The ParabolicPDE' class is used to solve parabolic partial differential
equations like the Heat Equation. Let 'u(x, t)' = temperature of a rod at
position '0 <= x <= xm' and time 't' > 0. Numerically solve the
Heat Equation: u_t = k * u_xx with initial conditions u(x, 0) = ic(x) boundary conditions (u(0, t), u(xm, t)) = bc
- Alphabetic
- By Inheritance
- ParabolicPDE
- Error
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
ParabolicPDE(k: Double, dt: Double, dx: Double, xm: Double, ic: FunctionS2S, bc: (Double, Double))
- k
the thermal conductivity
- dt
delta 't'
- dx
delta 'x'
- xm
the length of the rod
- ic
the initial conditions as a function of position 'x'
- bc
the boundary conditions as a 2-tuple for end-points 0 and 'xm'
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
flaw(method: String, message: String): Unit
- Definition Classes
- Error
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
solve(t: Double): VectorD
Solve for the temperature of the rod at time 't', returning the vector of temperatures representing the temperature profile of the rod over its length.
Solve for the temperature of the rod at time 't', returning the vector of temperatures representing the temperature profile of the rod over its length. This method uses an explicit finite difference technique to solve the PDE.
- t
the time the solution is desired
-
def
solveCN(t: Double): VectorD
Solve for the temperature of the rod at time 't', returning the vector of temperatures representing the temperature profile of the rod over its length.
Solve for the temperature of the rod at time 't', returning the vector of temperatures representing the temperature profile of the rod over its length. This method uses the implicit Crank-Nicolson technique to solve the PDE, which provides greater stability and accuracy. Implicit recurrence equation: -r*u(i-1, j2) + 2.*(1.+r)*u(i, j2) - r*u(i+1, j2) = r*u(i-1, j1) + 2.*(1.-r)*u(i, j1) + r*u(i+1, j1) This equation is solved simultaneously: solve for 'u' in 'mat * u = vec'
- t
the time the solution is desired
- See also
people.sc.fsu.edu/~jpeterson/5-CrankNicolson.pdf
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )