Making a shader that would "fill" an open mesh?
Staying inside Cycles alone might not produce the desired results..



Here i'm using the Z component of the Geometry's position socket to compare with a scalar value (Representing the distance from the ground)



Most likely you'll need to animate a boolean intersection with a plane, one slice of will be the glass/transparent material, the other slice will be the solid/diffuse material (or whatever you want).

Here i've separated them spatially to indicate they this method uses two X Objects to and two planes, both planes point in opposite directions:





The closest I get without making it complicated is this:



It uses the Normal of the upper cut to decide how much to mix between glass and transparent. The normals pointing downwards (on the cutting surface) are the faces that are mixed to Transparent most. The exact shader mixing is something you'll need to decide on yourself.