Gerris
|
Low-level discrete operators. More...
Functions | |
FttCellFace | gfs_cell_face (FttCell *cell, FttDirection d) |
gdouble | gfs_neighbor_value (const FttCellFace *face, guint v, gdouble *x) |
gdouble | gfs_center_gradient (FttCell *cell, FttComponent c, guint v) |
void | gfs_center_gradient_stencil (FttCell *cell, FttComponent c, guint v) |
gdouble | gfs_center_van_leer_gradient (FttCell *cell, FttComponent c, guint v) |
gdouble | gfs_center_minmod_gradient (FttCell *cell, FttComponent c, guint v) |
gdouble | gfs_center_superbee_gradient (FttCell *cell, FttComponent c, guint v) |
gdouble | gfs_center_sweby_gradient (FttCell *cell, FttComponent c, guint v) |
gdouble | gfs_center_regular_gradient (FttCell *cell, FttComponent c, GfsVariable *v) |
gdouble | gfs_center_regular_2nd_derivative (FttCell *cell, FttComponent c, GfsVariable *v) |
void | gfs_face_gradient (const FttCellFace *face, GfsGradient *g, guint v, gint max_level) |
void | gfs_face_weighted_gradient (const FttCellFace *face, GfsGradient *g, guint v, gint max_level) |
void | gfs_face_cm_gradient (const FttCellFace *face, GfsGradient *g, guint v, gint max_level) |
void | gfs_face_cm_weighted_gradient (const FttCellFace *face, GfsGradient *g, guint v, gint max_level) |
void | gfs_cell_dirichlet_gradient (FttCell *cell, guint v, gint max_level, gdouble v0, FttVector *grad) |
void | gfs_mixed_cell_gradient (FttCell *cell, GfsVariable *v, FttVector *g) |
gdouble | gfs_mixed_cell_interpolate (FttCell *cell, FttVector p, GfsVariable *v) |
gdouble | gfs_cell_dirichlet_gradient_flux (FttCell *cell, guint v, gint max_level, gdouble v0) |
gdouble | gfs_cell_dirichlet_gradient_flux_stencil (FttCell *cell, gint max_level, gdouble v0, GfsLinearProblem *lp, GfsStencil *stencil) |
gdouble | gfs_cell_dirichlet_value (FttCell *cell, GfsVariable *v, gint max_level) |
void | gfs_shear_strain_rate_tensor (FttCell *cell, GfsVariable **u, gdouble t[FTT_DIMENSION][FTT_DIMENSION]) |
gdouble | gfs_2nd_principal_invariant (FttCell *cell, GfsVariable **u) |
void | gfs_get_from_below_intensive (FttCell *cell, const GfsVariable *v) |
void | gfs_cell_coarse_fine (FttCell *parent, GfsVariable *v) |
void | gfs_cell_cleanup (FttCell *cell, GfsDomain *domain) |
void | gfs_cell_reset (FttCell *cell, GfsVariable *v) |
void | gfs_face_reset (FttCellFace *face, GfsVariable *v) |
GtsRange | gfs_stats_variable (FttCell *root, GfsVariable *v, FttTraverseFlags flags, gint max_depth) |
GfsNorm | gfs_norm_variable (FttCell *root, GfsVariable *v, FttTraverseFlags flags, gint max_depth) |
void | gfs_norm_init (GfsNorm *n) |
void | gfs_norm_reset (GfsNorm *n) |
void | gfs_norm_add (GfsNorm *n, gdouble val, gdouble weight) |
void | gfs_norm_update (GfsNorm *n) |
gdouble | gfs_face_interpolated_value (const FttCellFace *face, guint v) |
gdouble | gfs_face_interpolated_value_generic (const FttCellFace *face, const GfsVariable *v) |
gdouble | gfs_face_weighted_interpolated_value (const FttCellFace *face, guint v) |
void | gfs_normal_divergence (FttCell *cell, GfsVariable *v) |
void | gfs_normal_divergence_2D (FttCell *cell, GfsVariable *v) |
gdouble | gfs_divergence (FttCell *cell, GfsVariable **v) |
gdouble | gfs_vorticity (FttCell *cell, GfsVariable **v) |
gdouble | gfs_vector_norm2 (FttCell *cell, GfsVariable **v) |
gdouble | gfs_vector_norm (FttCell *cell, GfsVariable **v) |
gdouble | gfs_vector_lambda2 (FttCell *cell, GfsVariable **v) |
void | gfs_pressure_force (FttCell *cell, GfsVariable *p, FttVector *f) |
void | gfs_cell_traverse_mixed (FttCell *root, FttTraverseType order, FttTraverseFlags flags, FttCellTraverseFunc func, gpointer data) |
void | gfs_cell_corner_values (FttCell *cell, GfsVariable *v, gint max_level, gdouble f[4 *(FTT_DIMENSION-1)+1]) |
gdouble | gfs_interpolate_from_corners (FttCell *cell, FttVector p, gdouble *f) |
gdouble | gfs_interpolate (FttCell *cell, FttVector p, GfsVariable *v) |
void | gfs_interpolate_stencil (FttCell *cell, GfsVariable *v) |
gdouble | gfs_center_curvature (FttCell *cell, FttComponent c, guint v) |
gdouble | gfs_streamline_curvature (FttCell *cell, GfsVariable **v) |
void | gfs_cell_corner_interpolator (FttCell *cell, FttDirection d[FTT_DIMENSION], gint max_level, gboolean centered, GfsInterpolator *inter) |
gdouble | gfs_cell_corner_value (FttCell *cell, FttDirection d[FTT_DIMENSION], GfsVariable *v, gint max_level) |
GfsStencil * | gfs_stencil_new (FttCell *cell, GfsLinearProblem *lp, gdouble coeff) |
void | gfs_stencil_add_element (GfsStencil *stencil, FttCell *cell, GfsLinearProblem *lp, gdouble coeff) |
void | gfs_stencil_destroy (GfsStencil *stencil) |
void | gfs_face_weighted_gradient_stencil (const FttCellFace *face, GfsGradient *g, gint max_level, GfsLinearProblem *lp, GfsStencil *stencil) |
void | gfs_face_cm_weighted_gradient_stencil (const FttCellFace *face, GfsGradient *g, gint max_level, GfsLinearProblem *lp, GfsStencil *stencil) |
void | gfs_cm_gradient (FttCell *cell, GfsVariable *v, FttVector *g) |
Low-level discrete operators.
gdouble gfs_2nd_principal_invariant | ( | FttCell * | cell, |
GfsVariable ** | u | ||
) |
cell | a #FttCell. |
u | the velocity. |
void gfs_cell_cleanup | ( | FttCell * | cell, |
GfsDomain * | domain | ||
) |
cell | a #FttCell. |
domain | a #GfsDomain. |
Frees the memory allocated for extra data associated with cell.
This function must be used as "cleanup function" when using ftt_cell_destroy().
void gfs_cell_coarse_fine | ( | FttCell * | parent, |
GfsVariable * | v | ||
) |
parent | a #FttCell. |
v | a #GfsVariable. |
Initializes v on the children of parent using interpolation.
First-order interpolation (straight injection) is used for boundary cells and second-order interpolation for the other cells.
void gfs_cell_corner_interpolator | ( | FttCell * | cell, |
FttDirection | d[FTT_DIMENSION], | ||
gint | max_level, | ||
gboolean | centered, | ||
GfsInterpolator * | inter | ||
) |
cell | a #FttCell. |
d | a set of perpendicular directions. |
max_level | the maximum cell level to consider (-1 means no restriction). |
centered | TRUE if the interpolator is cell-centered. |
inter | a #GfsInterpolator. |
Fills inter with the interpolator for the corner of cell defined by d.
gdouble gfs_cell_corner_value | ( | FttCell * | cell, |
FttDirection | d[FTT_DIMENSION], | ||
GfsVariable * | v, | ||
gint | max_level | ||
) |
cell | a #FttCell. |
d | a set of perpendicular directions. |
v | a #GfsVariable. |
max_level | the maximum cell level to consider (-1 means no restriction). |
void gfs_cell_corner_values | ( | FttCell * | cell, |
GfsVariable * | v, | ||
gint | max_level, | ||
gdouble | f[4 *(FTT_DIMENSION-1)+1] | ||
) |
cell | a #FttCell containing location p. |
v | a #GfsVariable. |
max_level | the maximum cell level to consider (-1 means no restriction). |
f | an array with the correct size (4*(FTT_DIMENSION - 1) + 1). |
Fills f with the values of v interpolated at the corners of cell.
void gfs_cell_dirichlet_gradient | ( | FttCell * | cell, |
guint | v, | ||
gint | max_level, | ||
gdouble | v0, | ||
FttVector * | grad | ||
) |
cell | a #FttCell. |
v | a #GfsVariable index. |
max_level | the maximum cell level to consider (-1 means no restriction). |
v0 | the Dirichlet value on the boundary. |
grad | a #FttVector. |
Fills grad with components of the gradient of variable v interpolated at the center of area of the solid boundary contained in cell. The gradient is scaled by the size of the cell.
gdouble gfs_cell_dirichlet_gradient_flux | ( | FttCell * | cell, |
guint | v, | ||
gint | max_level, | ||
gdouble | v0 | ||
) |
cell | a #FttCell. |
v | a #GfsVariable index. |
max_level | the maximum cell level to consider (-1 means no restriction). |
v0 | the Dirichlet value on the boundary. |
gdouble gfs_cell_dirichlet_gradient_flux_stencil | ( | FttCell * | cell, |
gint | max_level, | ||
gdouble | v0, | ||
GfsLinearProblem * | lp, | ||
GfsStencil * | stencil | ||
) |
cell | a #FttCell. |
max_level | the maximum cell level to consider (-1 means no restriction). |
v0 | the Dirichlet value on the boundary. |
lp | the #GfsLinearProblem. |
stencil | a GfsStencil. |
Returns the stencil accounting for the flux of the gradient of a given variable through the solid boundary contained in cell. Returns the stencil equivalent to the action of gfs_cell_dirichlet_gradient_flux().
gdouble gfs_cell_dirichlet_value | ( | FttCell * | cell, |
GfsVariable * | v, | ||
gint | max_level | ||
) |
cell | a #FttCell. |
v | a #GfsVariable. |
max_level | the maximum cell level to consider (-1 means no restriction). |
FttCellFace gfs_cell_face | ( | FttCell * | cell, |
FttDirection | d | ||
) |
cell | a #FttCell. |
d | a direction. |
This function is different from ftt_cell_face() because it takes into account the solid fractions.
void gfs_cell_reset | ( | FttCell * | cell, |
GfsVariable * | v | ||
) |
cell | a #FttCell. |
v | a #GfsVariable to reset. |
Sets the value of the variable v of cell to zero.
void gfs_cell_traverse_mixed | ( | FttCell * | root, |
FttTraverseType | order, | ||
FttTraverseFlags | flags, | ||
FttCellTraverseFunc | func, | ||
gpointer | data | ||
) |
root | the root #FttCell of the tree to traverse. |
order | the order in which the cells are visited - FTT_PRE_ORDER, FTT_POST_ORDER. |
flags | which types of children are to be visited. |
func | the function to call for each visited #FttCell. |
data | user data to pass to func. |
Traverses a cell tree starting at the given root #FttCell. Calls the given function for each mixed cell.
gdouble gfs_center_curvature | ( | FttCell * | cell, |
FttComponent | c, | ||
guint | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable index. |
The curvature is normalized by the square of the size of the cell.
gdouble gfs_center_gradient | ( | FttCell * | cell, |
FttComponent | c, | ||
guint | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable index. |
The gradient is normalized by the size of the cell.
void gfs_center_gradient_stencil | ( | FttCell * | cell, |
FttComponent | c, | ||
guint | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable index. |
Sets to 1. the v variable of all the cells which would be used if gfs_center_gradient() was called with identical arguments.
gdouble gfs_center_minmod_gradient | ( | FttCell * | cell, |
FttComponent | c, | ||
guint | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable index. |
The gradient is normalized by the size of the cell and is limited using a minmod limiter.
gdouble gfs_center_regular_2nd_derivative | ( | FttCell * | cell, |
FttComponent | c, | ||
GfsVariable * | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable. |
The derivative is normalized by the size of the cell squared. Only regular Cartesian stencils are used to compute the derivative.
gdouble gfs_center_regular_gradient | ( | FttCell * | cell, |
FttComponent | c, | ||
GfsVariable * | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable. |
The gradient is normalized by the size of the cell. Only regular Cartesian stencils are used to compute the gradient.
gdouble gfs_center_superbee_gradient | ( | FttCell * | cell, |
FttComponent | c, | ||
guint | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable index. |
The gradient is normalized by the size of the cell and is limited using a superbee limiter.
gdouble gfs_center_sweby_gradient | ( | FttCell * | cell, |
FttComponent | c, | ||
guint | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable index. |
The gradient is normalized by the size of the cell and is limited using a Sweby limiter (beta = 1.5).
gdouble gfs_center_van_leer_gradient | ( | FttCell * | cell, |
FttComponent | c, | ||
guint | v | ||
) |
cell | a #FttCell. |
c | a component. |
v | a #GfsVariable index. |
The gradient is normalized by the size of the cell and is limited using van Leer's limiter.
void gfs_cm_gradient | ( | FttCell * | cell, |
GfsVariable * | v, | ||
FttVector * | g | ||
) |
cell | a #FttCell. |
v | a #GfsVariable. |
g | a #FttVector. |
Fills g with the components of the gradient of v at the center of mass of cell.
The gradient is normalized by the size of the cell.
gdouble gfs_divergence | ( | FttCell * | cell, |
GfsVariable ** | v | ||
) |
cell | a #FttCell. |
v | the components of the vector. |
void gfs_face_cm_gradient | ( | const FttCellFace * | face, |
GfsGradient * | g, | ||
guint | v, | ||
gint | max_level | ||
) |
face | a #FttCellFace. |
g | the #GfsGradient. |
v | a #GfsVariable index. |
max_level | the maximum cell level to consider (-1 means no restriction). |
Set the value of g as the gradient of variable v on the face. Variable v is defined at the center of mass of its cell. Linear interpolation is used to evaluate the gradient in the vicinity of cut cells.
void gfs_face_cm_weighted_gradient | ( | const FttCellFace * | face, |
GfsGradient * | g, | ||
guint | v, | ||
gint | max_level | ||
) |
face | a #FttCellFace. |
g | the #GfsGradient. |
v | a #GfsVariable index. |
max_level | the maximum cell level to consider (-1 means no restriction). |
Set the value of g as the gradient of variable v on the face weighted by the value of the v field of the face state vector of the corresponding cell. Variable v is defined at the center of mass of its cell. Linear interpolation is used to evaluate the gradient in the vicinity of cut cells.
void gfs_face_cm_weighted_gradient_stencil | ( | const FttCellFace * | face, |
GfsGradient * | g, | ||
gint | max_level, | ||
GfsLinearProblem * | lp, | ||
GfsStencil * | stencil | ||
) |
face | a #FttCellFace. |
g | a GfsGradient. |
max_level | the maximum cell level to consider (-1 means no restriction). |
lp | the linear problem. |
stencil | a stencil. |
Fills stencil with the stencil corresponding to the weighted gradient on face. The weights are defined at the center of mass of the cell. Linear interpolation is used to evaluate the gradient in the vicinity of cut cells. This function returns the stencil equivalent to the action of gfs_face_cm_weighted_gradient().
void gfs_face_gradient | ( | const FttCellFace * | face, |
GfsGradient * | g, | ||
guint | v, | ||
gint | max_level | ||
) |
face | a #FttCellFace. |
g | the #GfsGradient. |
v | a #GfsVariable index. |
max_level | the maximum cell level to consider (-1 means no restriction). |
Set the value of g as the gradient of variable v on the face. The value returned is second order accurate in space and conservative, in the sense that values at a coarse/fine cell boundary are consistent.
The value of the gradient (normalised by the size of face->cell) is given by: g->b - g->a*GFS_VALUE (face->cell, v).
gdouble gfs_face_interpolated_value | ( | const FttCellFace * | face, |
guint | v | ||
) |
face | a #FttFace. |
v | a #GfsVariable index. |
Computes the value of variable v on the face using second-order interpolation from the cell-centered values.
Note that this function cannot be called for coarse -> fine faces (use gfs_face_interpolated_value_generic() instead).
gdouble gfs_face_interpolated_value_generic | ( | const FttCellFace * | face, |
const GfsVariable * | v | ||
) |
face | a #FttFace. |
v | a #GfsVariable. |
Same as gfs_face_interpolated_value() but also works for coarse -> fine faces.
void gfs_face_reset | ( | FttCellFace * | face, |
GfsVariable * | v | ||
) |
face | a #FttCellFace. |
v | a #GfsVariable to reset. |
Sets the value of the variable v of face to zero (on both sides).
void gfs_face_weighted_gradient | ( | const FttCellFace * | face, |
GfsGradient * | g, | ||
guint | v, | ||
gint | max_level | ||
) |
face | a #FttCellFace. |
g | the #GfsGradient. |
v | a #GfsVariable index. |
max_level | the maximum cell level to consider (-1 means no restriction). |
Set the value of g as the gradient of variable v on the face weighted by the value of the v field of the face state vector of the corresponding cell. The value returned is second order accurate in space and conservative, in the sense that values at a coarse/fine cell boundary are consistent.
void gfs_face_weighted_gradient_stencil | ( | const FttCellFace * | face, |
GfsGradient * | g, | ||
gint | max_level, | ||
GfsLinearProblem * | lp, | ||
GfsStencil * | stencil | ||
) |
face | a FttCellFace |
g | a GfsGradient |
max_level | an integer |
lp | the linear problem |
stencil | a stencil |
Fills stencil with the stencil corresponding to the weighted gradient on face.
gdouble gfs_face_weighted_interpolated_value | ( | const FttCellFace * | face, |
guint | v | ||
) |
face | a #FttFace. |
v | a #GfsVariable index. |
Computes the value of variable v on the face weighted by the value of the v field of the face state vector using interpolation from the cell-centered values. The value returned is second order accurate in space and conservative, in the sense that values at a coarse/fine cell boundary are consistent.
void gfs_get_from_below_intensive | ( | FttCell * | cell, |
const GfsVariable * | v | ||
) |
cell | a #FttCell. |
v | a #GfsVariable to "get from below". |
Sets the value of the "intensive" variable v of cell by taking the volume weighted average of the values of its children cells.
This functions fails if cell is a leaf of the cell tree.
gdouble gfs_interpolate | ( | FttCell * | cell, |
FttVector | p, | ||
GfsVariable * | v | ||
) |
cell | a #FttCell containing location p. |
p | the location at which to interpolate. |
v | a #GfsVariable. |
Interpolates the v variable of cell, at location p. Linear interpolation is used and the boundaries of the domain are treated as planes of symmetry for all variables.
gdouble gfs_interpolate_from_corners | ( | FttCell * | cell, |
FttVector | p, | ||
gdouble * | f | ||
) |
cell | a #FttCell containing location p. |
p | the location at which to interpolate. |
f | values at the corners of cell. |
void gfs_interpolate_stencil | ( | FttCell * | cell, |
GfsVariable * | v | ||
) |
cell | a #FttCell. |
v | a #GfsVariable. |
Sets to 1. the v variable of all the cells which would be used by a call to gfs_interpolate().
void gfs_mixed_cell_gradient | ( | FttCell * | cell, |
GfsVariable * | v, | ||
FttVector * | g | ||
) |
cell | a mixed #FttCell. |
v | a #GfsVariable. |
g | the gradient. |
Fills g with the components of the gradient of v at the center of mass of cell.
The gradient is normalized by the size of the cell.
gdouble gfs_mixed_cell_interpolate | ( | FttCell * | cell, |
FttVector | p, | ||
GfsVariable * | v | ||
) |
cell | a mixed #FttCell. |
p | a #FttVector. |
v | a #GfsVariable. |
gdouble gfs_neighbor_value | ( | const FttCellFace * | face, |
guint | v, | ||
gdouble * | x | ||
) |
face | a #FttCellFace. |
v | a variable index. |
x | relative position of the neigboring value. |
void gfs_norm_add | ( | GfsNorm * | n, |
gdouble | val, | ||
gdouble | weight | ||
) |
n | a #GfsNorm. |
val | a value to add to n. |
weight | weight of val. |
Adds val to n.
void gfs_norm_init | ( | GfsNorm * | n | ) |
n | a #GfsNorm. |
Initializes a #GfsNorm.
void gfs_norm_reset | ( | GfsNorm * | n | ) |
n | a #GfsNorm. |
Sets all the fields of n to 0.
void gfs_norm_update | ( | GfsNorm * | n | ) |
n | a #GfsNorm. |
Updates the fields of n.
GfsNorm gfs_norm_variable | ( | FttCell * | root, |
GfsVariable * | v, | ||
FttTraverseFlags | flags, | ||
gint | max_depth | ||
) |
root | the root #FttCell of the tree to obtain norm from. |
v | the variable to consider for norm statistics. |
flags | which types of cells are to be visited. |
max_depth | maximum depth of the traversal. |
Traverses the cell tree defined by root using ftt_cell_traverse() and gathers norm statistics about variable v.
void gfs_normal_divergence | ( | FttCell * | cell, |
GfsVariable * | v | ||
) |
cell | a #FttCell. |
v | a #GfsVariable. |
Adds to variable v of cell the integral of the divergence of the (MAC) velocity field in this cell.
void gfs_normal_divergence_2D | ( | FttCell * | cell, |
GfsVariable * | v | ||
) |
cell | a #FttCell. |
v | a #GfsVariable. |
Fills variable v of cell with the integral of the 2D divergence of the (MAC) velocity field in this cell.
void gfs_pressure_force | ( | FttCell * | cell, |
GfsVariable * | p, | ||
FttVector * | f | ||
) |
cell | a #FttCell. |
p | a #GfsVariable. |
f | a #FttVector. |
Fills f with the pressure p component of the force exerted by the fluid on the fraction of embedded boundary contained in cell.
void gfs_shear_strain_rate_tensor | ( | FttCell * | cell, |
GfsVariable ** | u, | ||
gdouble | t[FTT_DIMENSION][FTT_DIMENSION] | ||
) |
cell | a #FttCell. |
u | the velocity. |
t | the shear strain rate tensor t[i][j] = (d_iu_j+d_ju_i)/2. |
Fills t with the shear strain rate tensor at the center of mass of cell, normalised by the size of the cell.
GtsRange gfs_stats_variable | ( | FttCell * | root, |
GfsVariable * | v, | ||
FttTraverseFlags | flags, | ||
gint | max_depth | ||
) |
root | the root #FttCell of the tree to obtain statistics from. |
v | the variable to consider for statistics. |
flags | which types of cells are to be visited. |
max_depth | maximum depth of the traversal. |
Traverses the cell tree defined by root using ftt_cell_traverse() and gathers statistics about variable v.
void gfs_stencil_add_element | ( | GfsStencil * | stencil, |
FttCell * | cell, | ||
GfsLinearProblem * | lp, | ||
gdouble | coeff | ||
) |
stencil | the stencil |
cell | a #FttCell. |
lp | the linear problem |
coeff | the cell coefficient. |
Adds the contribution of a cell to stencil.
void gfs_stencil_destroy | ( | GfsStencil * | stencil | ) |
stencil | a stencil |
Destroys a stencil.
GfsStencil* gfs_stencil_new | ( | FttCell * | cell, |
GfsLinearProblem * | lp, | ||
gdouble | coeff | ||
) |
cell | the #FttCell associated with this stencil. |
lp | the linear problem. |
coeff | the cell coefficient. |
gdouble gfs_streamline_curvature | ( | FttCell * | cell, |
GfsVariable ** | v | ||
) |
cell | a #FttCell. |
v | the components of the vector. |
The curvature is normalized by the size of the cell.
gdouble gfs_vector_lambda2 | ( | FttCell * | cell, |
GfsVariable ** | v | ||
) |
cell | a #FttCell. |
v | the components of the vector. |
gdouble gfs_vector_norm | ( | FttCell * | cell, |
GfsVariable ** | v | ||
) |
cell | a #FttCell. |
v | the components of the vector. |
gdouble gfs_vector_norm2 | ( | FttCell * | cell, |
GfsVariable ** | v | ||
) |
cell | a #FttCell. |
v | the components of the vector. |
gdouble gfs_vorticity | ( | FttCell * | cell, |
GfsVariable ** | v | ||
) |
cell | a #FttCell. |
v | the components of the vector. |