Gerris
Functions

solid.c File Reference

Solid boundaries. More...

Functions

void gfs_cell_fluid (FttCell *cell)
gboolean gfs_set_2D_solid_fractions_from_surface (FttCell *cell, GfsGenericSurface *s)
gboolean gfs_solid_is_thin (FttCell *cell, GfsGenericSurface *s)
void gfs_cell_init_solid_fractions_from_children (FttCell *cell)
guint gfs_init_solid_fractions_leaves (GfsDomain *domain, GSList *i, GfsVariable *status)
void gfs_init_solid_fractions_from_children (GfsDomain *domain, gboolean destroy_solid, FttCellCleanupFunc cleanup, gpointer data, GfsVariable *status)
guint gfs_domain_init_solid_fractions (GfsDomain *domain, GSList *i, gboolean destroy_solid, FttCellCleanupFunc cleanup, gpointer data, GfsVariable *status)
gboolean gfs_cell_check_solid_fractions (FttCell *root)
void gfs_domain_init_fraction (GfsDomain *domain, GfsGenericSurface *s, GfsVariable *c)
void gfs_cell_cm (const FttCell *cell, FttVector *cm)
void gfs_solid_normal (const FttCell *cell, FttVector *n)
void gfs_face_ca (const FttCellFace *face, FttVector *ca)
void gfs_solid_coarse_fine (FttCell *parent, GfsDomain *domain)

Detailed Description

Solid boundaries.


Function Documentation

gboolean gfs_cell_check_solid_fractions ( FttCell *  root)
Parameters:
rootthe root #FttCell of the cell tree to check.

Checks the consistency of the solid fractions of each cell of the cell tree relative to the neighboring solid fractions.

Returns:
TRUE if the solid fractions are consistent, FALSE otherwise.

Here is the call graph for this function:

void gfs_cell_cm ( const FttCell *  cell,
FttVector *  cm 
)
Parameters:
cella #FttCell.
cma #FttVector.

Fills cm with the coordinates of the center of mass of cell.

Here is the call graph for this function:

Here is the caller graph for this function:

void gfs_cell_fluid ( FttCell *  cell)
Parameters:
cella #FttCell.

Sets cell and all its descendants as full fluid cells.

void gfs_cell_init_solid_fractions_from_children ( FttCell *  cell)
Parameters:
cella #FttCell.

Uses the values of the solid fractions of the children of cell to compute the values of its solid fractions.

This function fails if cell is a leaf of the cell tree.

Here is the call graph for this function:

Here is the caller graph for this function:

void gfs_domain_init_fraction ( GfsDomain *  domain,
GfsGenericSurface *  s,
GfsVariable *  c 
)
Parameters:
domaina #GfsDomain.
sa surface defining the interface boundary.
ca #GfsVariable.

Initializes the fraction c of the interface s contained in all the cells of domain.

Here is the call graph for this function:

guint gfs_domain_init_solid_fractions ( GfsDomain *  domain,
GSList *  i,
gboolean  destroy_solid,
FttCellCleanupFunc  cleanup,
gpointer  data,
GfsVariable *  status 
)
Parameters:
domaina #GfsDomain.
ia list of #GfsSolids.
destroy_solidcontrols what to do with solid cells.
cleanupa #FttCellCleanupFunc or NULL.
datauser data to pass to cleanup.
statusa temporary variable or NULL.

Initializes the solid fractions of all the cells of domain.

If destroy_solid is set to TRUE, the cells entirely contained in the solid are destroyed using cleanup as cleanup function.

Returns:
the number of thin cells.

Here is the call graph for this function:

Here is the caller graph for this function:

void gfs_face_ca ( const FttCellFace *  face,
FttVector *  ca 
)
Parameters:
facea #FttCellFace.
caa #FttVector.

Fills ca with the coordinates of the center of area of face.

Here is the call graph for this function:

void gfs_init_solid_fractions_from_children ( GfsDomain *  domain,
gboolean  destroy_solid,
FttCellCleanupFunc  cleanup,
gpointer  data,
GfsVariable *  status 
)
Parameters:
domaina #GfsDomain.
destroy_solidcontrols what to do with solid cells.
cleanupa #FttCellCleanupFunc or NULL.
datauser data to pass to cleanup.
statusthe status variable.

Initializes the solid fractions of the non-leaf cells of domain using the values of the leaf cells.

If destroy_solid is set to TRUE, the cells entirely contained in the solid are destroyed using cleanup as cleanup function.

Here is the call graph for this function:

Here is the caller graph for this function:

guint gfs_init_solid_fractions_leaves ( GfsDomain *  domain,
GSList *  i,
GfsVariable *  status 
)
Parameters:
domaina #GfsDomain.
ia list of #GfsSolids.
statusa temporary variable or NULL.

Initializes the solid fractions of the leaf cells of domain.

Returns:
the number of thin cells.

Here is the call graph for this function:

Here is the caller graph for this function:

gboolean gfs_set_2D_solid_fractions_from_surface ( FttCell *  cell,
GfsGenericSurface *  s 
)
Parameters:
cella #FttCell.
sa #GfsGenericSurface.

Sets the 2D volume fractions of cell cut by s.

Returns:
TRUE if the cell is thin, FALSE otherwise;

Here is the call graph for this function:

void gfs_solid_coarse_fine ( FttCell *  parent,
GfsDomain *  domain 
)
Parameters:
parenta mixed #FttCell with children.
domaina #GfsDomain.

Fills the solid properties of the children of parent. Destroys all children entirely contained in the solid.

Here is the call graph for this function:

Here is the caller graph for this function:

gboolean gfs_solid_is_thin ( FttCell *  cell,
GfsGenericSurface *  s 
)
Parameters:
cella #FttCell.
sa #GfsGenericSurface.

s is "thin" relative to cell if the miminum distance between non-connected faces of s cutting cell is smaller than the size of cell (see doc/figures/thin.fig).

Returns:
TRUE if s is a thin surface, FALSE otherwise.
void gfs_solid_normal ( const FttCell *  cell,
FttVector *  n 
)
Parameters:
cella #FttCell.
na #FttVector.

Fills n with the components of the average unit normal to the fraction of solid boundary contained in cell, multiplied by the area of the fraction of solid boundary contained in cell.

Here is the caller graph for this function:

 All Data Structures Files Functions Variables