`quantity the_area fixed = 2.3 global_method facet_area`

This permits all the named quantity features to be used.

`print sum(facet, eprint area)`

will print out all the facet areas and then the sum.
`set facet opacity `

PARAMETER name PARAMETER_FILE stringI forget exactly how it is all supposed to work.

#define FUNC_VALUE 1 #define FUNC_DERIV 2 #define FUNC_SECOND 3 #define MAXCOORD 4 /* must be same as in Evolver!! */ #define REAL double /* long double if Evolver compiled with -DLONGDOUBLE */ struct dstack { REAL value; REAL deriv[2*MAXCOORD]; REAL second[2*MAXCOORD][2*MAXCOORD]; }; void func1 ( mode, x, s ) int mode; /* FUNC_VALUE, FUNC_DERIV, FUNC_SECOND */ REAL *x; /* pointer to list of arguments */ struct dstack *s; /* for return values */ { REAL value; s->value = x[0] + x[1]*x[1]; if ( mode == FUNC_VALUE ) return; /* first partials */ s->deriv[0] = 1.0; s->deriv[1] = 2*x[1]; if ( mode == FUNC_DERIV ) return; /* second partials */ s->second[0][0] = 0.0; s->second[0][1] = 0.0; s->second[1][0] = 0.0; s->second[1][1] = 2.0; return; }Supposing the sourcefile name to be foo.c, compile and link on SGI systems (IRIX 5.0.1 or above) with

cc -c foo.c ld -shared foo.o -o foo.soSun systems are the same, but with -s in place of -shared. For other systems, consult the ld documentation for the option to make a shared library or dynamic load library.

To use the functions in a datafile, include a line at the top of the datafile before any of the functions are used:

load_library "foo.so"The current directory and the EVOLVERPATH will be searched for the library. Up to 10 libraries may be loaded. Afterwards, any of the functions may be invoked just by using their name, without an explicit argument list because the argument list is always implicit where these functions are legal. Examples, supposing func2 is also defined with one argument:

constraint 1 formula: func1 boundary 1 parameters 2 x1: func2 x2: 3*func2 + sin(p1)It is up to you to make sure the number of arguments your function expects is the same as the number implicit in the use of the function. You do not need to explicitly declare your functions in the datafile. Any undefined identifier is checked to see if it is a dynamically loaded function.

NOTE: This implementation of dynamic loading is experimental, and the interface described here may change in the future.

Some physical surfaces have their lowest energy state when their mean curvature is some nonzero value. An example is a membrane made of parallel stacked molecules which have one end bigger than the other. Their curvature energy is thus proportional to (h-h0)^2, where h is the actual mean curvature and h0 is the equilibrium or intrinsic mean curvature. Several of the squared mean curvature named methods can use h0, either in the form of a variable h_zero or a real-valued vertex attribute h_zero. If the vertex attribute exists, it takes precedence. Methods using h_zero:

- sq_mean_curv_cyl
- sq_mean_curvature
- eff_area_sq_mean_curvature
- normal_sq_mean_curvature
- star_normal_sq_mean_curvature
- star_perp_sq_mean_curvature
- sqcurve2_string

- star_sq_mean_curvature
- star_eff_area_sq_mean_curvature
- sqcurve_string
- sqcurve_string_marked
- sqcurve3_string
- circle_willmore

- buck_knot_energy
- charge_gradient
- facet_knot_energy
- facet_knot_energy_fix
- knot_energy
- knot_thickness_0
- knot_thickness_p
- knot_thickness_p2
- proj_knot_energy
- sphere_knot_energy
- uniform_knot_energy
- uniform_knot_energy_normalizer
- uniform_knot_normalizer1
- uniform_knot_normalizer2

Back to top of Surface Evolver documentation. Index.

Susquehanna University assumes no responsibility for the content of this personal website. Please read the disclaimer.