Are you asking about the theoretical design of an optimal nozzle? Or are you asking about practical design of a nozzle, including material choices? Or both? ;-)
Optimal nozzle design will depend on the exhaust gas characteristics, the ambient air pressure at the altitude it will operate within, and the chamber pressure.
See this thread. And
see my old analysis on the topic here.
There's a good paper by Chuck Rogers
online at this link.
You should also look at
this student research paper.
Practical nozzles that are conical (not the optimal "bell" shape) are only about 2-3% less efficient, in general. A 15 degree expansion cone (1/2 angle) is typical, with 30-45 degree entrance cone (1/2 angle). The throat cylindrical length should be <0.4 times the throat's diameter.
If you choose ablative material, it is more difficult to design the grain geometry for the desired thrust curve. Hardwood, phenolics or high-temp thermoplastic open up as the motor burns, reducing the Kn as it goes. Graphite of a high-grade, high-density, will be essentially constant over many firings. Machine of graphite is messy, though. Ceramics are tricky because of the thermal shock, and the difficulty in molding them and allowing for shrinkage during kiln drying. Steel nozzles are difficult to machine, and can become a dangerous projectile in a motor failure.
An aluminum carrier holds up well with a graphite insert. This helps reduce the cost of the graphite and allow swapping different nozzle sizes. Take a look at
my 6" motor design here. (
Photo proof it worked.
)
For larger, longer-burn motors, the thermal load on the nozzle may cause it to fail. It will also transfer heat into the casing and may cause the casing to fail. A good design choice is to have a phenolic insulator to hold a graphite insert. Also avoid sharp edges in the graphite shape because it will introduce stress points that may shear off under heat and pressure.
Have fun, and be safe!