// moundpad.fe // Evolver data for drop of prescribed volume sitting on plane with gravity. // Contact angle with plane can be varied. // Drop is confined to wettable strip, illustrating one-sided constraints. parameter angle = 60 // interior angle between plane and surface, degrees parameter xleft = -.2 // left side of wettable strip parameter xright = 1.2 // right side of wettable strip gravity_constant 0 // start with gravity off #define LOWERT (-cos(angle*pi/180)) // virtual tension of facet on plane constraint 1 /* the table top */ formula: z = 0 energy: // for contact angle e1: -(LOWERT*y) e2: 0 e3: 0 constraint leftcon nonnegative formula: x - xleft constraint rightcon nonpositive formula: x - xright vertices 1 0.0 0.0 0.0 constraint 1,leftcon,rightcon /* 4 vertices on plane */ 2 1.0 0.0 0.0 constraint 1,leftcon,rightcon 3 1.0 1.0 0.0 constraint 1,leftcon,rightcon 4 0.0 1.0 0.0 constraint 1,leftcon,rightcon 5 0.0 0.0 1.0 6 1.0 0.0 1.0 7 1.0 1.0 1.0 8 0.0 1.0 1.0 9 2.0 2.0 0.0 fixed /* for table top */ 10 2.0 -1.0 0.0 fixed 11 -1.0 -1.0 0.0 fixed 12 -1.0 2.0 0.0 fixed // wettable strip outline, raised a bit for visibility 13 xleft -1.0 0.01 fixed 14 xleft 2.0 0.01 fixed 15 xright -1.0 0.01 fixed 16 xright 2.0 0.01 fixed edges /* given by endpoints and attribute */ 1 1 2 constraint 1,leftcon,rightcon /* 4 edges on plane */ 2 2 3 constraint 1,leftcon,rightcon 3 3 4 constraint 1,leftcon,rightcon 4 4 1 constraint 1,leftcon,rightcon 5 5 6 6 6 7 7 7 8 8 8 5 9 1 5 10 2 6 11 3 7 12 4 8 13 9 10 no_refine fixed /* for table top */ 14 10 11 no_refine fixed 15 11 12 no_refine fixed 16 12 9 no_refine fixed 17 13 14 no_refine fixed bare // pad outline 18 15 16 no_refine fixed bare faces /* given by oriented edge loop */ 1 1 10 -5 -9 2 2 11 -6 -10 3 3 12 -7 -11 4 4 9 -8 -12 5 5 6 7 8 7 13 14 15 16 no_refine density 0 fixed /* table top for display */ bodies /* one body, defined by its oriented faces */ 1 1 2 3 4 5 volume 1 density 1