File: energies.htm

package info (click to toggle)
evolver 2.70+ds-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 17,148 kB
  • sloc: ansic: 127,395; makefile: 209; sh: 98
file content (209 lines) | stat: -rw-r--r-- 9,746 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<!DOCTYPE HTML>
<HEAD><TITLE>Surface Evolver Documentation - Energies</title>
<link rel="stylesheet" type="text/css" href="evdoc-style.css" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>

<BODY>
<!--NewPage-->

<h1 class="center">
    <a href="http://www.susqu.edu/brakke/evolver/evolver.htm" class="comic">
Surface Evolver</a> Documentation</h1>

<a href="evolver.htm#doc-top">Back to top of Surface Evolver documentation.</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="index.htm">Index.</a>


<a   id="energies"></a>
<a   id="energy"></a>
<h1>Energies</h1>

         The Evolver usually works by minimizing the total energy of the
         surface, subject to constraints.  
This energy can have several components:
<ul>
<li> <a href="#surface-tension">Surface tension</a>
<li> <a href="#gravity-energy">Gravitational potential energy</a>
<li> <a href="#constraint-energy-integrals">Constraint energy integrals</a>
<li> <a href="#named-quantity-energy">Named quantity energies</a>
<li> <a href="#gap-energy">Convex constraint gap energy</a>
<li> <a href="#pressure-energy">Prescribed pressure energy</a>
<li> <a href="#compressibility-energy">Compressibility energy</a>
<li> <a href="#crystalline-energy">Crystalline energy</a>
</ul>
<hr>

<a   id="surface-tension"></a><h2>Surface tension energy</h2>


	  Soap  films and interfaces
         between different fluids have an energy content proportional
         to their area.  Hence they shrink to minimize energy. The
         energy per unit area can also be regarded as a surface
         tension, or force per unit length. Each facet has a surface
         tension, which is 1 unless the datafile specifies otherwise
         (see <a href="datafile.htm#faces-section">TENSION</a> attribute
          for faces).  
         Different facets may have different surface tensions.
	 Facet tensions may be changed interactively with the
	 <a href="commands.htm#set"><code>set facet tension ...</code></a> command.
         The contribution to the total energy is the sum
         of all the facet areas times their respective surface
         tensions. The surface tension of a facet may also be specified
         as depending on the <a href="elements.htm#phase,-facet">phases</a> 
     of the bodies it separates.
     In the <a href="model.htm#string-model">string model</a>, the
     tension resides on edges instead of facets.
<p> Example datafile: <a href="cube.htm">cube.fe</a>
<hr>
<a   id="gravity-energy"></a><h2>Gravitational potential energy</h2>
          If a body has  
         a <a href="elements.htm#density,-body">density</a>,
         then that body contributes its gravitational
         energy to the total.  The acceleration of gravity 
<a href="syntax.htm#G-value">G</a> is
         under user control with the <a href="single.htm#G">G</a> command.
  Letting \rho be the body density,
         the energy is defined as
<pre>
  E = \int\int\int_{body} G \rho  z  dV 
</pre>
         but is calculated using the Divergence Theorem as
<pre>
  E =  \int\int_{body surface} G\rho {z^2\over 2} \vec k \cdot \vec{dS}.  
</pre> 
         This integral is done over each facet that bounds a body.
         If a facet bounds two bodies of different density, then
         the appropriate difference in density is used.  Facets
         lying in the z = 0 plane make no contribution, and may be
         omitted if they are otherwise unneeded.  Facets lying
         in constraints may be omitted if their contributions to
         the gravitational energy are contained in 
<a href="#constraint-energy-integrals">constraint energy integrals</a>.
         In the <a href="model.htm#string-model">string model</a>,
         all this happens in one lower dimension.
<p> Example datafile: <a href="mound.htm">mound.fe</a>
<hr>         
<a   id="constraint-energy-integrals"></a><h2>Constraint energy integrals</h2>
         An edge on a <a href="constrnt.htm#level-set-constraints">
level-set constraint</a>
         may have an energy given by integrating a vectorfield
         <b>F</b> over the oriented edge:
  <pre>
           E = \int_{edge} <b>F . dl</b>. 
  </pre>
 The integrand is defined in the <a href="datafile.htm#constraint-decl">
constraint declaration</a> in the datafile.
	 The integral uses the innate orientation of the edge,
	 but if the orientation attribute of the edge is negative,
	 the value is negated.
         This is useful for prescribed contact angles on walls
         (in place of wall facets with equivalent tension)
         and for gravitational potential energy that would
         otherwise require facets in the constraint.
         The <a href="mound.htm">mound example</a> illustrates this.

<hr>
<a   id="named-quantity-energy"></a><h2>Named quantity energies</h2>
 There are a large number of <a href="quants.htm">named methods</a>
for calculating various quantities, which all follow the same syntax.
These may be used as energy by defining an 
<a href="quants.htm#energy-quantity">energy-type</a>
<a href="quants.htm#named-quantities">named quantity</a> in the 
<a href="datafile.htm#named-quantity-decl">datafile</a>.
<p> Example datafile: <a href="ringblob.htm">ringblob.fe</a>
<hr>
<a   id="gap-energy"></a><h2>Convex constraint gap energy</h2>
         Consider a soap film spanning
         a circular cylinder.  The Evolver must approximate
         this surface with a collection of facets.  The straight
         edges of these facets cannot conform to the curved wall,
         and hence the computed area of the surface leaves out
         the gaps between the outer edges and the wall.  The
         Evolver will naturally try to minimize area by moving
         the outer vertices around so the gaps increase, ultimately
         resulting in a surface collapsed to a line.  This is not
         good.  Therefore there is provision for a "gap energy"
         to discourage this.  A 
<a href="constrnt.htm#level-set-constraints">level-set constraint</a>
 may be declared CONVEX
         in the <a href="datafile.htm#constraint-decl">datafile</a>.  
For an edge on such a constraint, an
         energy is calculated as
 <pre>  E = <i>k</i>\left\Vert \vec S \times \vec Q \right\Vert / 6
    </pre> 
         where \vec S is the edge vector and \vec Q is the 
         projection of the edge on the tangent plane 
         of the constraint at the tail vertex of the edge.
         The constant <i>k</i> is a global constant called the "gap
         constant".  A gap constant of 1 gives the best
         approximation to the actual area of the gap.  A larger
         value minimizes gaps and gets vertices nicely spread
         out along a constraint.  You can set the 
         value of <i>k</i> in the 
<a href="datafile.htm#gap-constant-decl">datafile</a> or
 with the <a href="single.htm#k">k</a> command.
<p>
         The gap energy falls off quadratically as the surface
         is refined.  That is, refining once reduces the gap
         energy by a factor of four.  You can see if this energy
         has a significant effect on the surface by changing the
         gap constant.
<p> Note: gap energy is effective only in the 
<a href="model.htm#linear-model">linear model</a>.
<p> Example datafile: tankex.fe

<hr>
<a   id="pressure-energy"></a><h2>Prescribed pressure energy</h2>
          Each body with a prescribed
         pressure P contributes energy E = PV.
           where V is the actual volume of the body.
         This can be used to generate surfaces of prescribed
         mean curvature, since mean curvature is proportional
         to pressure.   Pressure can be prescribed in the
<a href="datafile.htm#bodies-section">bodies section</a> of the
datafile, and can be changed with the <a href="single.htm#b">b</a>
command, or by assigning a value to the
 <a href="elements.htm#pressure,-body" class="keyword">
pressure</a> attribute of a body.
<hr>

<a   id="compressibility-energy"></a><h2>Compressibility energy</h2>
If the ideal gas mode is in effect (set by the 
<a href="toggle.htm#ambient_pressure">PRESSURE</a> keyword
in the datafile), then each body contributes an energy 
<pre>
         E = P*V_0*ln(V/V_0)  </pre>
where P is the ambient pressure, V_0 is the target volume of the body,
and V is the actual volume.  To account for work done against the
ambeint pressure, each body also makes a negative contribution of 
<pre> 
	 E = -P*V. </pre>
The ambient pressure can be set in the datafile or with the
<a href="single.htm#p">p</a> command.  This energy is calculated
only for bodies given a target volume.


<hr>
<a   id="crystalline-energy"></a><h2>Crystalline energy</h2>
         The Evolver can model energies of crystalline
         surfaces.  These energies are proportional to the
         area of a facet, but they also depend on the direction
         of the normal.  The energy is given by the largest dot
         product of the surface normal with a set of vectors known
         as the Wulff vectors.  Surface area can be regarded as
         a crystalline integrand whose Wulff vectors are the unit sphere.
         See the datafile section on Wulff vectors 
         for more.  A surface has either crystalline energy
         or surface tension, not both.  Use is not recommended since
	 nonsmoothness makes Evolver work poorly.
<p> Example datafile: crystal.fe

<hr>
<a href="evolver.htm#doc-top">Back to top of Surface Evolver documentation.</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="index.htm">Index.</a>
</body>
</html>