> Does Octave have functionality already built in to solve the 3D diffusion
> eq in cylindrical coordinates using FD or FE or does that need to be built
> from scratch?
Not builtin but it may be possible to use Fenics which use Finite Element method from Octave. Guess you mean Finite Difference by FD and Finitie Element by FE. For Finitide Difference method Openfoam may be used but I never tried this software and do not know much about it.
It might however be simpler to use Fenics directly instead of runnning from Octave. I tried both python and C++ inteface for Fenics. I prefer C++ because of static datatypes then compiler find if pieces fit together already before program is run and it is easier to work with functions then datatypes define what data is expected for function parameters. Codeblocks and C++ migth be a good option, if you right click a datatype it is possible to open header.
There are some functions to create meshes for geometries in Octave which might then be fed into Fenics. It is possible to import solved equations into Octave which might be useful for both visualization and calculations on solution, though Paraview or Opendx might in many cases be a better option. I have a slightly modified version of a function which may be used for interpolation on delaunay mesh which I got from someone else here, do not remember name, I used it for interpolation on measurement data but on solution of PDE should work equally well.