/usr/include/gerris/vof.h is in libgfs-mpi-dev 20131206+dfsg-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | /* Gerris - The GNU Flow Solver
* Copyright (C) 2001-2011 National Institute of Water and Atmospheric Research
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/
#ifndef __VOF_H__
#define __VOF_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "advection.h"
#include "variable.h"
#define GFS_IS_FULL(f) ((f) == 0. || (f) == 1.)
gdouble gfs_line_area (const FttVector * m,
gdouble alpha);
void gfs_line_center (const FttVector * m,
gdouble alpha,
gdouble a,
FttVector * p);
gdouble gfs_line_area_center (const FttVector * m,
gdouble alpha,
FttVector * p);
gdouble gfs_line_alpha (const FttVector * m,
gdouble c);
#if FTT_2D
# define gfs_plane_volume gfs_line_area
# define gfs_plane_alpha gfs_line_alpha
# define gfs_plane_center gfs_line_center
# define gfs_plane_area_center gfs_line_area_center
#else /* 3D */
gdouble gfs_plane_volume (const FttVector * m,
gdouble alpha);
gdouble gfs_plane_alpha (const FttVector * m,
gdouble c);
void gfs_plane_center (const FttVector * m,
gdouble alpha,
gdouble a,
FttVector * p);
gdouble gfs_plane_area_center (const FttVector * m,
gdouble alpha,
FttVector * p);
#endif /* 3D */
void gfs_youngs_gradient (FttCell * cell,
GfsVariable * v,
FttVector * g);
/* GfsVariableTracerVOF: header */
typedef struct _GfsVariableTracerVOF GfsVariableTracerVOF;
typedef struct _GfsVariableTracerVOFClass GfsVariableTracerVOFClass;
struct _GfsVariableTracerVOF {
/*< private >*/
GfsVariableTracer parent;
/* a list of GfsVariableVOFConcentration associated with this VOF tracer */
GtsSListContainer * concentrations;
/*< public >*/
GfsVariable * m[FTT_DIMENSION], * alpha;
};
struct _GfsVariableTracerVOFClass {
/*< private >*/
GfsVariableClass parent_class;
/*< public >*/
void (* update) (GfsVariable * v, GfsDomain * domain);
};
#define GFS_VARIABLE_TRACER_VOF(obj) GTS_OBJECT_CAST (obj,\
GfsVariableTracerVOF,\
gfs_variable_tracer_vof_class ())
#define GFS_VARIABLE_TRACER_VOF_CLASS(klass) GTS_OBJECT_CLASS_CAST (klass,\
GfsVariableTracerVOFClass,\
gfs_variable_tracer_vof_class())
#define GFS_IS_VARIABLE_TRACER_VOF(obj) (gts_object_is_from_class (obj,\
gfs_variable_tracer_vof_class ()))
GfsVariableTracerVOFClass * gfs_variable_tracer_vof_class (void);
/* GfsVariableVOFConcentration: header */
typedef struct _GfsVariableVOFConcentration GfsVariableVOFConcentration;
struct _GfsVariableVOFConcentration {
/*< private >*/
GfsVariableTracer parent;
/*< public >*/
GfsVariableTracerVOF * vof;
};
#define GFS_VARIABLE_VOF_CONCENTRATION(obj) GTS_OBJECT_CAST (obj,\
GfsVariableVOFConcentration,\
gfs_variable_vof_concentration_class ())
#define GFS_IS_VARIABLE_VOF_CONCENTRATION(obj) (gts_object_is_from_class (obj,\
gfs_variable_vof_concentration_class ()))
GfsVariableClass * gfs_variable_vof_concentration_class (void);
/* GfsVariableTracerVOFHeight: header */
typedef struct _GfsVariableTracerVOFHeight GfsVariableTracerVOFHeight;
struct _GfsVariableTracerVOFHeight {
/*< private >*/
GfsVariableTracerVOF parent;
/*< public >*/
GfsVariable * hb[FTT_DIMENSION], * ht[FTT_DIMENSION];
};
#define GFS_VARIABLE_TRACER_VOF_HEIGHT(obj) GTS_OBJECT_CAST (obj,\
GfsVariableTracerVOFHeight,\
gfs_variable_tracer_vof_height_class ())
#define GFS_IS_VARIABLE_TRACER_VOF_HEIGHT(obj) (gts_object_is_from_class (obj,\
gfs_variable_tracer_vof_height_class ()))
GfsVariableTracerVOFClass * gfs_variable_tracer_vof_height_class (void);
void gfs_tracer_vof_advection (GfsDomain * domain,
GfsAdvectionParams * par);
gdouble gfs_vof_face_value (const FttCellFace * face,
GfsVariableTracerVOF * t);
gdouble gfs_vof_face_fraction (const FttCellFace * face,
GfsVariableTracerVOF * t);
guint gfs_vof_facet (FttCell * cell,
GfsVariableTracerVOF * t,
FttVector * p,
FttVector * m);
gdouble gfs_vof_facet_distance2 (FttCell * cell,
GfsVariableTracerVOF * t,
GtsPoint * p);
gdouble gfs_vof_center (FttCell * cell,
GfsVariableTracerVOF * t,
FttVector * p);
gdouble gfs_vof_plane_interpolate (FttCell * cell,
FttVector * p,
guint level,
GfsVariableTracerVOF * t,
FttVector * m);
gdouble gfs_vof_interpolate (FttCell * cell,
FttVector * p,
guint level,
GfsVariableTracerVOF * t);
gdouble gfs_height_curvature (FttCell * cell,
GfsVariableTracerVOF * t,
gdouble * kmax);
gboolean gfs_curvature_along_direction (FttCell * cell,
GfsVariableTracerVOFHeight * t,
FttComponent c,
gdouble * kappa,
gdouble * kmax);
gdouble gfs_height_curvature_new (FttCell * cell,
GfsVariableTracerVOFHeight * t,
gdouble * kmax);
gdouble gfs_fit_curvature (FttCell * cell,
GfsVariableTracerVOF * t,
gdouble * kmax);
gdouble gfs_vof_correctness (FttCell * cell,
GfsVariableTracerVOF * t);
GfsVariable * gfs_closest_height (FttCell * cell,
GfsVariableTracerVOFHeight * t,
FttComponent c,
gdouble * orientation);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __VOF_H__ */
|