| Gerris Flow Solver Reference Manual |
|---|
#include <gfs.h>void gfs_set_merged (GfsDomain *domain);void (*GfsMergedTraverseFunc) (GSList *merged,gpointer data);void gfs_domain_traverse_merged (GfsDomain *domain, GfsMergedTraverseFunc func,gpointer data);void gfs_domain_stats_merged (GfsDomain *domain,GtsRange *solid,GtsRange *number);void gfs_advection_update (GSList *merged, const GfsAdvectionParams *par);void gfs_centered_velocity_advection_diffusion (GfsDomain *domain,guint dimension, GfsAdvectionParams *apar, GfsVariable **g, GfsFunction *alpha);void gfs_tracer_advection_diffusion (GfsDomain *domain, GfsAdvectionParams *par, GfsVariable *half);void gfs_predicted_face_velocities (GfsDomain *domain,guint d, GfsAdvectionParams *par);
void gfs_set_merged (GfsDomain *domain);
Sets the merged field of the mixed cells of the domain defined
by domain.
domain : | the domain to traverse. |
void (*GfsMergedTraverseFunc) (GSList *merged,gpointer data);
merged : | |
data : |
|
void gfs_domain_traverse_merged (GfsDomain *domain, GfsMergedTraverseFunc func,gpointer data);
Traverses the merged leaf cells of the domain defined by domain. A
list of merged cells is passed to func. No cell belongs to more
than one merged list.
domain : | the domain to traverse. |
func : | the function to call for each visited merged cells. |
data : | user data to pass to |
void gfs_domain_stats_merged (GfsDomain *domain,GtsRange *solid,GtsRange *number);
Traverses the domain defined by domain using
gfs_domain_traverse_merged() and gathers statistics about the total
solid volume fraction of merged cells and the number of cells used
per merged cell.
domain : | the domain to obtain statistics from. |
solid : | |
number : | |
void gfs_advection_update (GSList *merged, const GfsAdvectionParams *par);
Updates the v variable of par for the merged cells of merged
using the fv update of each merged cell.
The v variable in each cell of the merged list is set to its
average updated value over the composite cell defined by all the
cells in merged.
merged : | a list of merged FttCell. |
par : | the advection parameters. |
void gfs_centered_velocity_advection_diffusion (GfsDomain *domain,guint dimension, GfsAdvectionParams *apar, GfsVariable **g, GfsFunction *alpha);
Advects the (centered) velocity field using the current
face-centered (MAC) velocity field and par->flux to compute the
velocity flux through the faces of each cell.
For each component of the velocity, before calling the par->flux
function the face values are first defined (at time t + dt/2) and
can then be used within the par->flux function.
"Small" cut cells are treated using a cell-merging approach to avoid any restrictive CFL stability condition.
The g[] variables are freed by this function.
domain : | a GfsDomain. |
dimension : | the number of dimensions (2 or 3). |
apar : | the advection parameters. |
g : | the pressure gradient. |
alpha : | the inverse of density or NULL. |
void gfs_tracer_advection_diffusion (GfsDomain *domain, GfsAdvectionParams *par, GfsVariable *half);
Advects the v field of par using the current face-centered (MAC)
velocity field.
If half is not NULL, the half-timestep value of par->v is
stored in the corresponding variable.
domain : | a GfsDomain. |
par : | the advection parameters. |
half : | a GfsVariable or NULL. |
void gfs_predicted_face_velocities (GfsDomain *domain,guint d, GfsAdvectionParams *par);
Fills the face (MAC) normal velocities of each leaf cell of domain
with the predicted values at time t + dt/2 using a godunov type
advection scheme.
domain : | a GfsDomain. |
d : | the number of dimensions (2 or 3). |
par : | the advection parameters. |
| <<< Fluid domains operators | Volume of Fluid advection >>> |