GfsFunction
From Gerris
| Revision as of 23:27, 7 October 2007 Popinet (Talk | contribs) (Reverted edits by 84.16.242.93 (Talk); changed back to last version by GeordieMcBain) ← Previous diff |
Revision as of 11:05, 22 November 2007 Cedric-penard (Talk | contribs) Next diff → |
||
| Line 23: | Line 23: | ||
| The GTS file must be a planar (preferably Delaunay) triangulation of a set of points. The value of the function at a given (x,y) coordinate is then calculated by computing the z-coordinate of the intersection of a vertical line passing through the point at (x,y,0) with the triangulation defined by the GTS file. | The GTS file must be a planar (preferably Delaunay) triangulation of a set of points. The value of the function at a given (x,y) coordinate is then calculated by computing the z-coordinate of the intersection of a vertical line passing through the point at (x,y,0) with the triangulation defined by the GTS file. | ||
| + | |||
| + | or a CDG file | ||
| + | |||
| + | myfile.cdg | ||
| + | |||
| + | The CDG file contain cartesian data. This type of file can be used to introduce 1 to 4 spacial time dimensions data. | ||
| + | The first line define the structure of grid for example : | ||
| + | 3 x y t | ||
| + | Here 3 show the number of dimension. x, y and t show the structure of data : 2 spacial dimensions and 1 temporal dimension. | ||
| + | The data is structured according to space vectors first and according to time vector finaly. | ||
| + | The 3 next lines defines the grid : each line contain one vector witch define the position of each point in space-time. | ||
| + | The rest of file contain the data. | ||
| + | More information in [http://en.wikipedia.org/wiki/cartesian_grid this page]. | ||
| Gradients of variables can be computed using the <code>dx()</code>, <code>dy()</code> and <code>dz()</code> functions. For example, the z-component of the vorticity would be computed as: | Gradients of variables can be computed using the <code>dx()</code>, <code>dy()</code> and <code>dz()</code> functions. For example, the z-component of the vorticity would be computed as: | ||
Revision as of 11:05, 22 November 2007
Functions can be used in most objects which require a numerical parameter. A function can be a constant or a piece of C code taking coordinates (x,y,z), time t or any of the domain variables as arguments and returning a floating-point value.
The syntax in parameter files is as follows:
-1.78e-3
or a C function
{
double a = sin (x + y);
double b = cos (x - z);
double c = sin (M_PI*t);
return a + b + c;
}
or a C expression
40.*(P - 1.)
or a GTS file
myfunction.gts
The GTS file must be a planar (preferably Delaunay) triangulation of a set of points. The value of the function at a given (x,y) coordinate is then calculated by computing the z-coordinate of the intersection of a vertical line passing through the point at (x,y,0) with the triangulation defined by the GTS file.
or a CDG file
myfile.cdg
The CDG file contain cartesian data. This type of file can be used to introduce 1 to 4 spacial time dimensions data. The first line define the structure of grid for example :
3 x y t
Here 3 show the number of dimension. x, y and t show the structure of data : 2 spacial dimensions and 1 temporal dimension. The data is structured according to space vectors first and according to time vector finaly. The 3 next lines defines the grid : each line contain one vector witch define the position of each point in space-time. The rest of file contain the data. More information in this page.
Gradients of variables can be computed using the dx(), dy() and dz() functions. For example, the z-component of the vorticity would be computed as:
(dx("V") - dy("U"))
More details on C functions
Comments should use the C syntax; i.e. opening /* and closing
*/ not necessarily on the same line rather than the usual parameter file syntax of a line beginning with a #. This is to allow the use of C preprocessor directives in C functions in GfsFunctions.
Example:
- Coalescence of a pair of Gaussian vortices (Gerris logo), in the InitVorticity command.

