If you are investigating a simple structure (like multi layer mediums), you can write your own script using any programming language such as python or C++.
Otherwise, you can use COMSOL Multiphysics[1], or CST Studio Suite[2].
There is BandSOLVE of RSoft. I suggest download the BandSOLVE user manual and check the examples and decide. I am not sure is there any free version of this.