Fundamentals of Partial Differential Equations