// plates_column.fe
// Evolver data for drop of prescribed volume between two horizontal plates.
// Contact angle with plates can be varied.
parameter top_angle = 70 // interior angle between plane and surface, degrees
parameter bottom_angle = 70 // interior angle between plane and surface, degrees
parameter height = 1 // separation of plates
gravity_constant 0 // start with gravity off
// Contact surface tensions
#define UPPERT (-cos(top_angle*pi/180)) // virtual tension of facet on plane
#define LOWERT (-cos(bottom_angle*pi/180))
constraint 1 /* the lower plate */
formula: z = 0
energy: // for contact angle
e1: -(LOWERT*y)
e2: 0
e3: 0
constraint 2 /* the upper plate */
formula: z = height
energy: // for contact angle and gravitational energy under missing facets
e1: -(UPPERT*y) + G*z^2/2*y
e2: 0
e3: 0
content:
c1: z*y
c2: 0
c3: 0
vertices
1 0.0 0.0 0.0 constraint 1 /* 4 vertices on lower plate */
2 1.0 0.0 0.0 constraint 1
3 1.0 1.0 0.0 constraint 1
4 0.0 1.0 0.0 constraint 1
5 0.0 0.0 1.0 constraint 2 /* upper plate */
6 1.0 0.0 1.0 constraint 2
7 1.0 1.0 1.0 constraint 2
8 0.0 1.0 1.0 constraint 2
9 2.0 2.0 0.0 fixed /* for lower plane */
10 2.0 -1.0 0.0 fixed
11 -1.0 -1.0 0.0 fixed
12 -1.0 2.0 0.0 fixed
13 2.0 2.0 height fixed /* for lower plane */
14 2.0 -1.0 height fixed
15 -1.0 -1.0 height fixed
16 -1.0 2.0 height fixed
edges /* given by endpoints and attribute */
1 1 2 constraint 1 /* 4 edges on lower plate */
2 2 3 constraint 1
3 3 4 constraint 1
4 4 1 constraint 1
5 5 6 constraint 2 /* upper plate */
6 6 7 constraint 2
7 7 8 constraint 2
8 8 5 constraint 2
9 1 5
10 2 6
11 3 7
12 4 8
13 9 10 no_refine fixed /* for lower plate */
14 10 11 no_refine fixed
15 11 12 no_refine fixed
16 12 9 no_refine fixed
17 13 14 no_refine fixed /* for upper plate */
18 14 15 no_refine fixed
19 15 16 no_refine fixed
20 16 13 no_refine fixed
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 13 14 15 16 no_refine density 0 fixed /* lower plate for display */
6 17 18 19 20 no_refine density 0 fixed /* upper plate for display */
bodies /* one body, defined by its oriented faces */
1 1 2 3 4 volume 1 density 1
read
re := {refine edges where on_constraint 1 }
// Typical evolution
gogo := { re; g 5; r; g 5; r; g 5; hessian; hessian; }
// Evolution with 45 degree contact angle
gogo2 := { angle := 45; re; g 5; V;V; r; g 5; V;V; r; g 5; hessian; hessian; }
// Evolution with 90 contact and high gravity
gogo3 := { angle := 90; G 5; re; g 5; r; g 5; r; g 5; hessian; hessian; }
// Evolution with 90 contact and negative gravity, i.e. pendant drop
gogo4 := { angle := 90; G -2; re; g 5; r; g 5; r; g 5; hessian; hessian; }
// Pendant drop falling off ceiling
gogo5 := { angle := 90; G -5; re; g 10; t .1; unset vertex constraint 1; g 3; }