Generic boundary

Name

Generic boundary -- 

Synopsis


#include <gfs.h>


#define     GFS_BOUNDARY_CLASS              (klass)
#define     GFS_BOUNDARY                    (obj)
#define     GFS_IS_BOUNDARY                 (obj)

            GfsBoundaryClass;
            GfsBoundary;
enum        GfsBoundaryVariableType;

GfsBoundary* gfs_boundary_new               (GfsBoundaryClass *klass,
                                             GfsBox *box,
                                             FttDirection d);
GfsBoundaryClass* gfs_boundary_class        (void);
void        gfs_boundary_send               (GfsBoundary *boundary);
void        gfs_boundary_receive            (GfsBoundary *boundary,
                                             FttTraverseFlags flags,
                                             gint max_depth);
void        gfs_boundary_synchronize        (GfsBoundary *boundary);
void        gfs_boundary_add_bc             (GfsBoundary *b,
                                             GfsBc *bc);
GfsBc*      gfs_boundary_lookup_bc          (GfsBoundary *b,
                                             GfsVariable *v);
void        gfs_boundary_set_default_bc     (GfsBoundary *b,
                                             GfsBc *bc);

Description

Details

GFS_BOUNDARY_CLASS()

#define     GFS_BOUNDARY_CLASS(klass)

klass :


GFS_BOUNDARY()

#define     GFS_BOUNDARY(obj)

obj :


GFS_IS_BOUNDARY()

#define     GFS_IS_BOUNDARY(obj)

obj :


GfsBoundaryClass

typedef struct {
  GtsObjectClass parent_class;

  void (* match)             (GfsBoundary * boundary);
  void (* send)              (GfsBoundary * boundary);
  void (* receive)           (GfsBoundary * boundary,
			      FttTraverseFlags flags,
			      gint max_depth);
  void (* synchronize)       (GfsBoundary * boundary);
} GfsBoundaryClass;


GfsBoundary

typedef struct {
  GfsVariable * v;
  GfsBoundaryVariableType type;
  GHashTable * bc;
} GfsBoundary;


enum GfsBoundaryVariableType

typedef enum {
  GFS_BOUNDARY_CENTER_VARIABLE,
  GFS_BOUNDARY_FACE_VARIABLE,
  GFS_BOUNDARY_MATCH_VARIABLE,
  GFS_BOUNDARY_VARIABLE_NUMBER
} GfsBoundaryVariableType;


gfs_boundary_new ()

GfsBoundary* gfs_boundary_new               (GfsBoundaryClass *klass,
                                             GfsBox *box,
                                             FttDirection d);

Creates a new boundary of type klass for box in direction d.

This function fails if box has already a boundary in direction d.

klass :

a GfsBoundaryClass.

box :

a GfsBox.

d :

a direction.

Returns :

a new GfsBoundary.


gfs_boundary_class ()

GfsBoundaryClass* gfs_boundary_class        (void);

Returns :


gfs_boundary_send ()

void        gfs_boundary_send               (GfsBoundary *boundary);

Calls the @send() method of boundary.

boundary :

a GfsBoundary.


gfs_boundary_receive ()

void        gfs_boundary_receive            (GfsBoundary *boundary,
                                             FttTraverseFlags flags,
                                             gint max_depth);

Calls the @receive() method of boundary.

boundary :

a GfsBoundary.

flags :

the traversal flags.

max_depth :

the maximum depth of the traversal.


gfs_boundary_synchronize ()

void        gfs_boundary_synchronize        (GfsBoundary *boundary);

Calls the @synchronize() method of boundary.

boundary :

a GfsBoundary.


gfs_boundary_add_bc ()

void        gfs_boundary_add_bc             (GfsBoundary *b,
                                             GfsBc *bc);

Adds boundary condition bc to b.

b :

a GfsBoundary.

bc :

a GfsBc.


gfs_boundary_lookup_bc ()

GfsBc*      gfs_boundary_lookup_bc          (GfsBoundary *b,
                                             GfsVariable *v);

b :

v :

Returns :


gfs_boundary_set_default_bc ()

void        gfs_boundary_set_default_bc     (GfsBoundary *b,
                                             GfsBc *bc);

Sets the default boundary condition for b to bc.

b :

a GfsBoundary.

bc :

a GfsBc.