I've discussed the sheer number of subspecialties in materials science before. I'd like to go into a bit of depth on my personal subspecialty, simulation. My work is in molecular dynamics (MD). The linked Wikipedia article is fairly technical. Fundamentally speaking, molecular dynamics uses Newton's First Law to determine the motion of atoms or particles according to a force equation. Particle interaction forces are described using one of many possible forms of the potential energy equation, and by integrating F=ma over a finite timestep, the motion of each particle can be determined.
Force potentials (mostly just called potentials) come in several basic forms, but typically are strongly repulsive at short distances with a low energy well at the preferential distance between different particle types. These potentials can be empirical or derived from quantum mechanical calculations, and may or may not take into account things like charge interactions or bonding, depending on your system. The majority of work in simulation goes into generating and validating these potentials for your system.
But how do we get started? There has to be an initial configuration from which positions are predicted and integrated. There's several ways, but it typically boils down to either using a crystalline structure, a random generator, or some combination of the two. These systems typically contain 10^4 to 10^6 atoms, with very few facilities capable of reaching millions of atoms(BlueGeneL, Blue Waters, etc). This is because for a number of atoms N, the number of calculations for each time step scales as roughly 3*N^2.
One million atoms isn't very big. One mole is more than 100,000,000,000,000,000 times larger than that. Even if Moore's Law were to continue indefinitely (which it probably can't, but that's another post), the sheer amount of computing time necessary to simulate a mole of material for more than a picosecond will still be staggering. For me, currently, to simulate 100,000 atoms using 8 clusters for one nanosecond would take roughly 20 hours on our fairly fancy schmancy server, or 160 hours of CPU time. To get around this, we use periodic boundary conditions. As long as our simulation box is large enough that atoms can't try and interact with themselves, we can effectively create an infinite solid. If we want to study a surface, we can chose not to implement periodic boundaries in that direction, or add a vacuum layer. However, in amorphous systems especially, periodic boundaries must be used carefully, lest you over-constrain your system.
So what is MD good for? Quantum mechanical methods are more accurate and finite element analysis can simulate much larger systems. Molecular dynamics (and its cousin, Monte Carlo) is one of the best ways to understand biomolecules and predict things like protein folding. It can be used to understand the mechanisms of radiation damage and shock wave damage. It's also growing as a tool to study interfaces, which tend to become surfaces in experimental methods, which changes certain structural details. It can also be used to study molecules which are simply too large for quantum methods (i.e., more than a few hundred atoms). MD can predict crystal structures for pressures and temperatures, which while not achievable in the lab, happen at the center of the Earth, or in space. The ultra-high tensile strength of carbon nanotubes was predicted by MD before it was verified by experiment.
Materials science is far from the only field that uses molecular dynamics as a tool. We may ask different questions of our results, but people from geophysicists to biologists use MD. And I think that's pretty spiffy.