![]() | ![]() | ![]() | 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 *par, GfsMultilevelParams *dpar);void gfs_tracer_advection_diffusion (GfsDomain *domain, GfsAdvectionParams *par, GfsMultilevelParams *dpar, 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 func. |
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 *par, GfsMultilevelParams *dpar);
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.
domain : | a GfsDomain. |
dimension : | the number of dimensions (2 or 3). |
par : | |
dpar : | the multilevel solver parameters for the diffusion equation. |
void gfs_tracer_advection_diffusion (GfsDomain *domain, GfsAdvectionParams *par, GfsMultilevelParams *dpar, 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. |
dpar : | the multilevel solver parameters for the diffusion equation. |
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 >>> |