Geometric elements
The surface is defined in terms of its geometric elements of
each dimension. Each element has its own set of attributes.
Some may be set by the user; others are set internally but
may be queried by the user. It is also possible to dynamically
define extra attributes
for any type of element, which may
be single values or vectors of values. Attribute values can
be specified in the datafile, and queried
with commands.
Elements: vertices,
edges,
facets,
bodies,
facet-edges.
Vertices
A vertex is a point in space.
The coordinates of the vertices are the parameters
that determine the location of the surface. It is
the coordinates that are changed when the surface
evolves. A vertex carries no default energy, but may
have energy by being on a
level set constraint in the
string model,
or by having a named quantity
energy applied to it.
The vertices of the original surface
are defined in the
vertices section of the datafile.
Attributes:
Edges
An edge is a one-dimensional
geometric element.
In the linear model,
an edge is an oriented line segment between a tail
vertex and a head vertex.
In the quadratic model, an edge is
defined by quadratic intepolation of two endpoints and a midpoint.
In the lagrange model, an edge is
defined by the appropriate order interpolation with the edge vertices.
In the string model, edges carry
a default surface tension energy proportional to their length.
Edges may also carry energy by being on
level set constraints
in the
soapfilm model,
or by having
named quantity energies applied to them.
The edges of the original surface are defined in the
edges section of the datafile.
Attributes:
Facets
In the soapfilm model,
a facet is an oriented triangle defined by a cycle of three
edges.
In the linear model,
a facet is a flat triangle.
In the quadratic
model, the facet is a curved surface defined by quadratic
interpolation among the three facet corner vertices and the
three edge midpoints. In the
Lagrange model,
lagrange_order
interpolation is done among
(lagrange_order+1)(lagrange_order+2)/2 vertices.
Although individual facets are oriented, there are no
restrictions on the orientations of adjacent facets.
By default, a facet carries a surface tension energy equal
to its area.
In the string model,
a facet is a chain of an arbitrary number of edges. The chain
need not be closed. Usually a facet is defined in the string
model in order to define a body, so the space dimension is 2
and the facet is planar, one facet corresponding to a body.
Facets carry no energy by themselves.
In the simplex model,
a facet is a simplex of dimension
surface_dimension
defined by surface_dimension+1 vertices. The surface_dimension
may be any dimension less than or equal to the
space_dimension.
The simplex is oriented according to the order of the vertices.
By default, a simplex carries a surface tension energy
proportional to its volume.
Facets may carry additional energy by having
named quantity energies
applied to them.
The facets of the original surface are defined in the
faces section of the
datafile.
Attributes:
Bodies
A body is a full-dimensional region of space. Bodies
are not triangulated. Rather, they are determined by their boundary
facets (or edges in 2D).
These facets are used for calculating body volume
and gravitational energy. Only those facets needed
for correct calculation need be given. In the
string
model, usually a body corresponds to one facet.
Bodies of the original surface are defined in the
bodies section
of the datafile.
Attributes:
Facetedges
A facetedge is a pairing of a facet and one of its edges, with
orientation such that the edge orientation is consistent with
the facet orientation. Facetedges are used internally by Evolver,
and are seldom of interest to the user. They carry no energy.
The C command will sometimes refer to
facetedges if the surface is inconsistent. "Facetedge" can
be used as an element generator. The attributes
available are id, edge, facet, and extra attributes.
Element attributes
Below is a list of possible element attributes. The first few apply to
all types of elements. Then come those applying specifically to vertices,
edges, facets, and bodies. See
Geometric elements for lists of attributes for each type element.
id
Geometric element read-only attribute.
The id of an element is a positive integer uniquely associated with
that element. The Evolver will assign id's to elements read from
the datafile in the order they are read.
Access the datafile id with the
original attribute. Examples:
list vertex where id < 10
set edge color red where id == 4 or id == 6 or id == 9
foreach facet ff do { printf "%g %g %g %g\n",ff.id,ff.edge[1].id,
ff.edge[2].id,ff.edge[3].id }
oid
Geometric element read-only attribute.
The oid of an element is the "oriented id" of an element as used in
an expression. It is the id number signed according
to whether the use of the element is with the same or opposite orientation
as the way it is stored. Example: to get an edge list for a facet
as in the datafile, use oid instead of id:
foreach facet ff do { printf "%g %g %g %g\n",ff.id,ff.edge[1].oid,
ff.edge[2].oid,ff.edge[3].oid }
original
Geometric element read-only attribute.
For elements read from the datafile, this is the number given to the
element in the datafile, which may be overridden by an explicit original
attribute value in the datafile line defining the element. The value is
inherited by all elements of the same type that result from subdivision.
For elements otherwise
generated at run time, the original attribute value is -1.
Example: to show which facets descended from face 1 in the datafile:
set facet color red where original == 1
Named quantities as attributes
Geometric element read-only attribute.
Named quantities and
method instances can be applied to geomtric
elements either in the datafile (by
adding the quantity or method name to the line defining an element) or
with the set command.
Nonglobal quantities
or methods can be unset
for individual elements. The values for individual
elements can be accessed using attribute syntax.
Examples: Suppose there is a named quantity "xmoment" that can be
evaluated for facets. Then one could give commands
foreach facet do printf "%g %f\n",id,xmoment
list facet where xmoment > 4
set facet quantity xmoment where original == 1
unset facet quantity xmoment
dihedral
vertex read-only attribute in the string
model. This is the angle from straightness of two edges at a vertex.
If there are less than two edges, the value is 0. If two or more
edges, the value is 2*asin(F/2), where F is the magnitude of the net
force on the vertex, assuming each edge has tension 1. Upper limit
clamped to pi.
Squared mean curvature
Geometric element read-only attribute.
SQCURVE is the squared mean curvature at a vertex. Valid only if squared mean
curvature is part of the energy or in a quantity (but not the
star versions of the squared mean curvature methods).
Extra attributes
Geometric element read-write attributes.
If extra attributes
have been defined in the
datafile or with a
define command,
they can be accessed with attribute syntax. Extra attribute
values in the datafile can be initialized for an element
by adding the attribute name and value to the line defining the
element. Example:
define vertex attribute oldx real
vertices
1 2 0 0 oldx 3
The command language can use the name with the same syntax as built-in
attributes, and can define extra attributes at run time:
set vertex oldx x
define edge attribute vibel real[2]
set edge[2] vibel[1] 3; set edge[2] vibel[2] 4
print vertex[3].oldx
The value of an extra attribute can also be calculated by user-supplied
code. The attribute definition is followed by the keyword "function" and
then the code in brackets. In the code, the keyword "self" is used
to refer to the element the attribute is being calculated for.
Example: To implement the lowest z value of a facet as an attribute:
define facet attribute minz real function
{self.minz := min(self.vertex,z);}
These attributes can also be indexed.
Due to current parser limitations on parsing executable code, this type
of extra attribute definition cannot occur in the top section of the
datafile, although the non-function version can to declare the attribute
name, and the function part added in a re-definition in the READ
section of the datafile.
Vertex coordinates
Vertex read-write attribute. The coordinates of
a vertex are its location in space. By default, these are Euclidean
coordinates, but they may represent any coordinate system if the
user defines appropriate length, area, volume, etc. integrals.
But graphics always treat the coordinates as Euclidean. The
individual coordinates may be referred to as x,y,z,w or x1,x2,x3,...
In the vertices section
of the datafile,
vertices of the original surface have their coordinates given
unless
they are on a parametric
boundary. Vertices on parametric boundaries have their coordinates
calculated from their parameter values. Coordinates may be read or
modified with the command language.
Examples:
foreach vertex do printf "%g %f %f %f\n",id,x,y,z
set vertex z z+.1*x
Vertex parameters
Vertex read-write attribute.
Vertices on parametric boundaries are located according to the
parameter values. Parameters are referred to as p1,p2,... Usually
only p1 is used, since one-parameter curves used as boundary wires
are most common. Such vertices in the original surface have
their parameter values given in the
vertices section of the datafile
instead of their coordinates. Vertex parameters may be read or modified
with the command language. Example:
foreach vertex do printf "%g %f\n",id,p1
set vertex[1] p1 1.2
Fixed vertices
Vertex read-write attribute.
A fixed vertex will not move during iteration (except to satisfy
level set constraints)
or other operations, except if coordinates
are explicitly changed by a "set vertices ..."
command.
A vertex may be declared fixed in the datafile
by putting fixed on the line defining the vertex, after the
coordinates. From the command prompt, one can fix or unfix vertices
with the fix and
unfix commands.
Examples:
list vertex where fixed
fix vertex where on_constraint 1
unfix vertices where on_boundary 1
Vertex constraints
Vertex read-write attribute.
A
level-set constraint
is a restriction of vertices to
lie on the zero level-set of a function. A constraint declared
NONNEGATIVE in the
datafile
forces a vertex to have a nonnegative
value of the function. A NONPOSITIVE constraint forces a vertex
to have a nonpositive value of the function.
A constraint may be declared GLOBAL,
in which case it applies to all vertices. A vertex may
be put on a constraint in the
vertices section
of the datafile by listing the constraint numbers after the keyword
"constraint".
See mound.fe for an example.
In commands, the status of a vertex can be read with the
on_constraint and
hit_constraint
attributes. The status can be changed with the
set or unset
commands.
Examples:
list vertex where on_constraint 2
set vertex constraint 1 where id == 4 or id == 6
unset vertex constraint 3
On_constraint
Vertex,
edge, or
facet
read-only attribute.
Boolean attribute for whether an element is on a given
constraint.
The full syntax of the attribute is "on_constraint n"
where n is the number of the constraint. Examples:
list edge where on_constraint 3
print vertex[3].on_constraint 1
Hit_constraint
Vertex read-only attribute.
Boolean attribute for whether a vertex exactly satisfies a given
constraint. Particularly
meant for vertices on
one-sided constraints.
The full syntax of the attribute is "hit_constraint n"
where n is the number of the constraint. Examples:
list vertex where hit_constraint 3
print vertex[3].hit_constraint 1
On_boundary
Vertex,
edge, or
facet
read-only attribute.
The status of whether an element is on a
boundary can be
queried with the Boolean attribute on_boundary. Elements can be
unset
from boundaries, but not set on them (since parameter values would be unknown).
Examples:
list vertex where on_boundary 1
unset vertex boundary 2
Bare vertex
Vertex read-write attribute.
Declaring a vertex "bare" says that a vertex does not have
an adjacent edge (string model)
or an adjacent facet (soapfilm model).
Useful in avoiding warning messages. A vertex may be declared bare
in the vertices section
of the datafile by adding the keyword bare to the line
defining the vertex.
Example:
list vertex where bare
Vertex edges
Vertex read-only attribute.
Generates
edges
attached to a vertex, oriented so vertex is the edge tail. The edges
are in no particular order.
Examples:
list vertex[3].edges
foreach vertex vv do { foreach vv.edge do print id }
Always use ".edges" to generate vertex edges; using "edges" with
an implicit element, as in "foreach vertex do list edges"
will list all edges in the surface over and over again.
Vertex facets
Vertex read-only attribute.
Generates
facets
attached to a vertex, with positive facet orientation. The facets are
in no particular order.
Examples:
list vertex[3].facets
foreach vertex vv do { foreach vv.facet do print id }
Always use ".facets" to generate vertex facets; using "facets" with
an implicit element, as in "foreach vertex do list facets"
will list all facets in the surface over and over again.
Vertex valence
Vertex read-only attribute.
The valence of a vertex is defined to be the number of edges
it is a member of. Example:
list vertices where valence == 6
histogram(vertex,valence)
Triple_point
Vertex read-write attribute. For telling Evolver
three films meet at this vertex. Used when effective_area is on to
adjust motion of vertex by making the effective area around the vertex
1/sqrt(3) of actual.
Tetra_point
Vertex read-write attribute. For telling Evolver
six films meet at this vertex. Used when effective_area is on to
adjust motion of vertex by making the effective area around the vertex
1/sqrt(6) of actual.
vertexnormal
Vertex read-only attribute. This is an indexed
attribute consisting of the components of a normal to the surface at
a vertex, normalized to unit length. This is the same normal as used
in hessian_normal mode. For
most vertices in the soapfilm model, the normal is the number average
of the unit normals of the surrounding facets. Along triple edges
and such where hessian_normal has a multi-dimensional normal plane,
the vertexnormal is the first basis vector of the normal plane.
Example: To print the normal components of vertex 3:
print vertex[3].vertexnormal[1];
print vertex[3].vertexnormal[2];
print vertex[3].vertexnormal[3];
__force
Vertex read-only attribute. This is an indexed
attribute giving the components of the force (negative energy
gradient as projected to constraints). Meant for debugging use.
This is not directly used for the motion; see
__velocity.
__velocity
Vertex read-only attribute. This is an indexed
attribute giving the components of the vector used for vertex motion
in the 'g' command. The motion of a vertex is the scale factor times
this vector. The velocity vector is calculated from the force vector
by applying area normalization, mobilty, etc. Also, if a vertex is
on a boundary, the velocity is projected back to parameters.
Length
Edge read-only attribute. Length of the edge.
Examples:
histogram(edge where on_constraint 1, length)
print edge[3].length
Edge density or tension
Edge read-write attribute.
"Density" and "tension" are synonyms.
Energy per unit
length of edge. Default 1 in string model, 0 in soapfilm model.
The tension may be modified in the datafile
edges section by
adding "tension value" to the line defining the edge.
The tension may be modified with the set
command.
Examples:
set edge tension .5 where id < 10
loghistogram(edge,density)
Fixed edge
Edge read-write attribute.
For an edge to be "fixed" means that any vertex or edge created
by refining the edge will inherit the "fixed" attribute.
Declaring an edge fixed in the datafile will also fix all vertices
on the edge. However, fixing an edge from the command prompt
will not fix any vertices.
An edge may be declared fixed in the datafile
edges section
by adding fixed to the line defining the edge.
From the command prompt, one can fix or unfix edges
with the fix and
unfix commands.
Examples:
fix edge where on_constraint 1
list edges where fixed
set edge color red where fixed
unfix edge[3]
Edge constraints
Edge read-write attribute.
An edge may be put on a
level set constraint.
For such an edge,
any vertices and edges generated
by refining the edge will inherit the constraint. An edge may
be put on constraints in the
edges section of the datafile
by listing the constraint numbers after the keyword constraint
on the line defining the edge.
Putting an edge
on a constraint does not put its existing vertices on the constraint.
In commands, the status of an edge can be read with the
"on_constraint"
attribute. The status can be changed with the
set or unset
commands.
Examples:
list edge where on_constraint 2
set edge constraint 1 where id == 4 or id == 6
unset edge constraint 3
Edge boundary
Edge read-write attribute.
If an edge is on a
parametric boundary,
then any edges and vertices
generated from the edge will inherit the boundary.
New vertex parameter values are calculated by extrapolating
from one end of the edge. This avoids wrap-around problems
that would arise from interpolating parameter values.
The status of whether an edge is on a
boundary can be
queried with the Boolean attribute on_boundary.
Edges can be unset
from boundaries, but not set on them.
Examples:
list edges where on_boundary 1
unset edges boundary 2
Edge wrap
Edge read-write attribute. When a
symmetry group
is in effect (such as the torus model)
and an edge crosses the boundary of a fundamental domain,
the edge is labelled with the group element that moves the edge head
vertex to its proper position relative to the tail vertex. The label
is internally encoded as an integer, the encoding peculiar
to each symmetry group.
Edge wrappings are set in the datafile.
The torus model
has its own peculiar wrap representation in the datafile:
* for no wrap, + for positive wrap, and -
for negative wrap.
Wraps are maintained automatically by Evolver during surface manipulations.
The numeric edge wrap values can be queried with attribute syntax. Example:
list edge where wrap != 0
Unfortunately, the torus model wraps come out rather opaquely, since
one cannot print hex. The torus wrap number is the sum of numbers
for the individual directions: +x = 1; -x = 31; +y = 64; -y = 1984;
+z = 4096; -z = 127040.
Caution: even though this attribute can be written by the user at runtime,
only gurus should try it.
Edge color
Edge read-write attribute.
Color for graphics.
The default color is black. Color may be set in the
datafile, or with
the set command.
In geomview, the edge color
will show up only for edges satisfying the
show edge condition, and then
they will have to compete with the edges geomview draws, unless you
turn off geomview's drawing of edges with "ae" in the geomview window.
Examples:
set edge color red where length > 1
show edge where color != black
Bare edge
Edge read-write attribute.
Declaring an edge "bare" indicates that an edge does not have an
adjacent facet (soapfilm model). Best declared in the
datafile, by adding the
keyword bare to the line defining an edge.
Useful in avoiding warning
messages. Bare edges are useful to show wires, frameworks, outlines,
etc. in graphics. Example:
list edge where bare
No_refine
Edge and facet
read-write Boolean attribute. An edge with the "no_refine" attribute
will not be refined by the r command.
This is useful for avoiding needless refining of lines or planes
that are used only for display. Giving a facet the no_refine
attribute has no effect except that edges created within the
facet by refining will inherit the no_refine attribute. So to
avoid refinement of a plane, all edges and facets in the plane
must be given the no_refine attribute. The no_refine attribute
may be specified on the datafile line for an edge or facet, or
the set command may be used.
Examples:
set edge no_refine where fixed
unset edge[2] no_refine
list edge where no_refine
print edge[3].no_refine
Edge orientation
Edge read-write attribute.
Controls the sign of oriented integrals on
an edge. Value +1 or -1. Useful when triangulation
manipulations create an edge going the wrong way.
Example:
set edge[2] orientation -1
Edge vertices
Edge read-only attribute. Acts as a
generator
for the two endpoints in
the linear and
quadratic models,
and for all vertices on an edge
in the Lagrange and
simplex models.
Example:
list edge[2].vertices
list edge ee where ee.vertex[1].on_constraint 1
Edge midv
Edge read-only attribute.
In the quadratic model, gives
the id of the midpoint vertex of an edge.
Edge facets
Edge read-only attribute.
Generates
facets
attached to an edge, in order around the edge when meaningful,
with facet orientation agreeing with edge orientation.
Examples:
list edge[2].facets
foreach edge ee do print max(ee.facets,area)
Edge valence
Edge read-only attribute.
The valence of an edge is the number of facets adjacent to it.
Examples:
list edges where valence == 1
refine edge where valence != 2
Dihedral
Edge read-only attribute.
The angle in radians between the normals of two facets on an edge. Zero if there
are not exactly two facets. This attribute is not stored, but
recalculated each time it is used. If there are not exactly two facets on
the edge, the value is 0.
Edge tangent
Edge read-only attribute. The components of the edge vector
in the linear model can be accessed
as edge attributes x,y,z or x1,x2,x3,.... In a command, the vector between
edge endpoints is used in quadratic model
or lagrange model. But when used in an
integral, the tangent is evaluated at the Gaussian integration points.
Not defined in the
simplex model. Example to list nearly
vertical edges:
list edges where z^2 > 10*(x^2 + y^2)
Facet area
Facet read-only attribute.
The area of the facet. Example:
list facet where area < .1
Fixed facet
Facet read-write attribute.
For a facet to be "fixed" means that any vertex, edge, or facet created
by refining a facet will inherit the fixed attribute. Fixing a facet
in the datafile or at the command prompt does not fix any edges or
vertices.
A face may be declared fixed in the datafile
by putting fixed on the line defining the face, after the
coordinates. From the command prompt, one can fix or unfix facets
with the fix and
unfix commands.
Facet tension or density
Facet read-write attribute.
Energy per unit
area of facet; surface tension.
Default 0 in string model,
1 in soapfilm model.
May be set in the datafile by adding "tension value"
to the line defining the facet. The density is inherited by any
facets generated by refining. "Tension" and "density" are synonyms.
Examples:
set facet tension 3 where original == 1
list facet where density < .4
Facet constraints
Facet read-write attribute.
Putting a facet on a
constraint
means that every vertex, edge, or facet
generated by refining the facet will inherit that constraint. Setting
a facet on a constraint does not set any of its existing edges or vertices
on the constraint. Facets may be put on constraints in the
datafile by listing the
constraint numbers after the keyword constraint on the line
defining the facet, or with the
set command. They may be removed
with the unset command.
Examples:
list facets where on_constraint 1
set facet[2] constraint 2
unset facet constraint 1
Facet color
Facet read-write attribute.
Color of both sides of facet for graphics.
Default is white.
Datafile example:
Faces
1 1 2 3 color red
Command examples:
list facets where color == red
set facet[3] color green
set facet color red where area > 2
Frontcolor
Facet read-write attribute.
Color of positive side of facet for graphics.
Default is white.
Datafile example:
Faces
1 1 2 3 frontcolor green backcolor red
Command examples:
list facets where frontcolor == red
set facet[3] frontcolor green
set facet frontcolor red where area > 2
Backcolor
Facet read-write attribute.
Color of negative side of facet for graphics.
Default is white. Set also when the "color" attribute is set.
Datafile example:
Faces
1 1 2 3 frontcolor green backcolor red
Command examples:
list facets where backcolor == red
set facet[3] backcolor green
set facet backcolor red where area > 2
Facet vertices
Facet read-only attribute.
Generates
vertices
around a facet, oriented as the facet boundary. "vertex" and
"vertices" are synonymous. Example:
list facet[3].vertex
Facet edges
Facet read-only attribute.
Generates
edges
around a facet, oriented as the facet boundary. "edge" and "edges"
are synonymous. Example:
list facet[3].edges
Facet bodies
Facet read-only attribute.
Generates
bodies
around a facet, first the body the facet is positive boundary of,
then the body the facet is negative boundary of, if they exist.
"body" and "bodies" are synonymous. Example:
list facet[3].bodies
Frontbody
Facet read-write attribute.
The id of the body of which the facet is on the
positively oriented boundary. Useful
after creating a new body with the
new_body command. As a read attribute, the value is 0 if
there is no such body. Examples:
newb := new_body; set facet frontbody newb where color == red
print facet[2].frontbody
Frontbody also works for adding edges to a facet in the string model,
but the added edge must be attach to one end of the edge arc, or
close the arc.
Backbody
Facet read-write attribute.
The id of the body of which the facet is on the
negatively oriented boundary. Useful
after creating a new body with the
new_body command. As a read attribute, the value is 0 if
there is no such body. Examples:
newb := new_body; set facet[1] frontbody newb;
set facet backbody newb where id == 2 or id == 4;
print facet[4].backbody
Backbody also works for adding edges to a facet in the string model,
but the added edge must be attach to one end of the edge arc, or
close the arc.
Facet valence
Facet read-only attribute.
The valence of a facet is the number of edges (or vertices)
that it contains. Most useful in the
string model. Example:
list facets where valence != 3
Nodisplay
Facet read-write attribute.
When set, suppresses the display of the facet in graphics. Can
be set in the datafile
by adding nodisplay to the line defining the facet. Can
also be manipulated by the set
and unset commands. Example:
set facet nodisplay where color != red
Orientation
Facet read-write attribute.
Controls the sign of oriented integrals on
a facet. Value +1 or -1. Useful when triangulation
manipulations create a facet with an undesired orientation.
Example:
set facet[123] orientation -1
Phase
Facet read-write attribute.
If there is a phasefile,
this attribute determines the
edge tension of an edge between two facets in the string model.
Example:
list facet where phase == 1
Facet normal vector
Facet read-only attribute.
The components of the facet normal vector may be referred to as
x,y,z or x1,x2,x3,...
in the linear model. Length is equal
to facet area.
In quadratic model
or lagrange model, only the three facet
corner vertices are used to calculate the normal. When used in
integrals, the normal is calculated at each integration points.
Not defined in
simplex model.
Body facets
Body read-only attribute.
Generates
facets
bounding a body, with proper facet orientation with respect to the body.
Example:
list body[1].facets
Body density
Body read-write attribute.
Density used for gravitational potential energy.
It can be set in the bodies section
of the datafile, or with the set command,
or by assignment. Command examples:
print body[2].density
set body density 3
body[2].density := 5
Body volume
Body read-only attribute.
Actual volume of a body. This is the sum of three
parts, in the soapfilm model:
- An integral over the facets bounding the body. This is
\int z dx dy normally, but \int (x dy dz + y dz dx + z dx dy)/3
if SYMMETRIC_CONTENT is in effect.
- Any constraint content edge integrals applying to the body.
- The body's volconst attribute.
In the string model, the parts are
- An integral over the edges bounding the body's facet. This is
\int -y dx.
- Any constraint content vertex integrals applying to the body.
- The body's volconst attribute.
Body volumes can be displayed with the v
command, or with standard attribute syntax. Example:
print body[1].volume
foreach body where volume > 2 do print id
Body target
Body read-write attribute.
The target volume of a volume constraint. May be set in
the
datafile,
by the b command, or the
set command.
A volume constraint may be removed by the
unset, or with the
b command.
Command examples:
set body[1] target 23
unset body target where id == 2
print body[2].target
Volfixed
Body read-only attribute.
Value is 1 if the volume of the body is fixed, 0 if not.
Body volconst
Body read-write attribute.
A constant added to the calculated volume. Useful for
correcting for omitted parts of body boundaries. Also used
internally as a correction in the torus model
, which will use the target volume to calculate volconst internally.
In the torus model, the target volume should be set within 1/12 of a
torus volume of the actual volume for each body, so the correct volconst
can be computed. Each volconst will be adjusted proportionately when
the volume of a fundamental torus domain is change by changing the
period formulas.
Volconst can be set
in the datafile bodies section,
or interactively by the set command or
by assignment. Examples:
print body[1].volconst
set body[2] volconst 1.2
body[2].volconst := 1.2
It is best to avoid using volconst except in the torus model. Rather,
use edge content integrals
so that the proper adjustments will be made if the boundary
of the surface is moved, or rebody
is done.
Actual_volume
Body datafile attribute.
Actual_volume is a number that can be specified in the
datafile definition of a body
in the rare circumstances where the torus volume
volconst calculation gives the wrong answer; volconst
will be adjusted to give this volume of the body.
Body pressure
Body read-write attribute.
If a body has a prescribed volume, this is a read-only attribute,
which is the Lagrange multiplier for the volume constraint.
If a body is given a prescribed pressure, then there is an energy
term equal to pressure times volume. A body cannot have a prescribed
volume and a prescribed pressure at the same time. Prescribed
volume or pressure
can be set in the bodies section
of the datafile. If pressure is prescribed, then the value can be
changed interactively with the b command,
the set command, or by assignment.
Examples:
print body[2].pressure
body[2].pressure := 1.3
set body[2] pressure 1.3
Body phase
Body read-write attribute.
For determining facet tension in soapfilm model, if a
phase file
is used.
Back to top of Surface Evolver documentation.