[Parameter files in docs now link to "Object Hierarchy" wiki Stephane Popinet **20070218212524] hunk ./doc/examples/Makefile.am 29 - gfs2doc + gfs2doc gfsclasses.py hunk ./doc/examples/Makefile.am 33 -dist_pkglib_DATA = gfs2tex.py +dist_pkglib_DATA = gfs2tex.py gfsclasses.py + +gfsclasses.py: classes + $(srcdir)/classes > gfsclasses.py hunk ./doc/examples/Makefile.am 83 +INCLUDES = -I$(top_srcdir)/src -I$(includedir) -DG_LOG_DOMAIN=\"Gfs-tools\"\ + $(GTS_CFLAGS) + +noinst_PROGRAMS = classes + +classes_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1 +classes_LDADD = $(GFS2D_LIBS) + + addfile ./doc/examples/classes.c hunk ./doc/examples/classes.c 1 +#include "init.h" + +int main (int argc, char * argv[]) +{ + GtsObjectClass ** klass = gfs_classes (); + printf ("klass = {\\\n"); + while (*klass) { + printf ("'%s' : 'http://gfs.sf.net/wiki/index.php/%s',\\\n", (*klass)->info.name, (*klass)->info.name); + klass++; + } + printf ("}\n"); + return 0; +} hunk ./doc/examples/gfs2doc.in 11 +import gfsclasses hunk ./doc/examples/gfs2doc.in 17 -dico = {} -for f in glob.glob("@abs_top_srcdir@/doc/reference/*.html"): - gfs2tex.dictionary(dico,open(f)) - hunk ./doc/examples/gfs2doc.in 23 - example.write(dico) + example.write(gfsclasses.klass) hunk ./doc/examples/gfs2tex 8 +import gfsclasses hunk ./doc/examples/gfs2tex 13 -dico = {} -for f in glob.glob("../html/*.html"): - gfs2tex.dictionary(dico,open(f)) - hunk ./doc/examples/gfs2tex 19 - example.write(dico) + example.write(gfsclasses.klass) hunk ./doc/examples/gfs2tex.py 15 -def dictionary(d,file): - p = re.compile(r">\w*_class;": - instruct = 0 - elif instruct: - if line[0:5] == "HREF=": - val = line[6:-2] - elif line[0] == ">" and line[-4:] == "" + r + " ") + out.write("" + r + " ") hunk ./src/init.c 83 +/** + * gfs_classes: + * + * Returns: a pointer to a NULL-terminated array of all the classes + * used in Gerris parameter files. + */ +GtsObjectClass ** gfs_classes (void) +{ + static GtsObjectClass ** classes = NULL; + if (classes == NULL) { gpointer klass[] = { + + gfs_global_class (), + gfs_simulation_class (), + gfs_ocean_class (), + gfs_advection_class (), + gfs_poisson_class (), + + gfs_variable_class (), + gfs_variable_tracer_class (), + gfs_variable_residual_class (), + gfs_variable_filtered_class (), + gfs_variable_curvature_class (), + + gfs_surface_bc_class (), + + gfs_box_class (), + gfs_box_not_adapt_class (), + gfs_gedge_class (), + + gfs_bc_dirichlet_class (), + gfs_bc_neumann_class (), + gfs_bc_flather_class (), + + gfs_boundary_class (), + gfs_boundary_inflow_constant_class (), + gfs_boundary_outflow_class (), +#ifdef HAVE_MPI + gfs_boundary_mpi_class (), +#endif /* HAVE_MPI */ + + gfs_refine_class (), + gfs_refine_solid_class (), + gfs_refine_surface_class (), + gfs_refine_distance_class (), + gfs_refine_height_class (), + + gfs_event_class (), + gfs_init_class (), + gfs_init_flow_constant_class (), + gfs_init_fraction_class (), +#if FTT_2D + gfs_init_vorticity_class (), +#endif /* FTT_2D */ + gfs_adapt_class (), + gfs_adapt_vorticity_class (), + gfs_adapt_streamline_curvature_class (), + gfs_adapt_function_class (), + gfs_adapt_gradient_class (), + gfs_adapt_curvature_class (), + gfs_adapt_not_box_class (), + gfs_event_sum_class (), + gfs_event_harmonic_class (), + gfs_event_stop_class (), + gfs_event_script_class (), + gfs_source_generic_class (), + gfs_source_scalar_class (), + gfs_source_class (), + gfs_source_control_class (), + gfs_source_diffusion_class (), + gfs_source_diffusion_explicit_class (), + gfs_source_velocity_class (), + gfs_source_viscosity_class (), + gfs_source_friction_class (), + gfs_source_coriolis_class (), + gfs_source_tension_class (), +#if !FTT_2D + gfs_source_hydrostatic_class (), +#endif /* 2D3 or 3D */ + gfs_remove_droplets_class (), + gfs_remove_ponds_class (), + gfs_event_filter_class (), + + gfs_output_class (), + gfs_output_time_class (), + gfs_output_progress_class (), + gfs_output_projection_stats_class (), + gfs_output_diffusion_stats_class (), + gfs_output_solid_stats_class (), + gfs_output_adapt_stats_class (), + gfs_output_timing_class (), + gfs_output_balance_class (), + gfs_output_solid_force_class (), + gfs_output_location_class (), + gfs_output_simulation_class (), + gfs_output_boundaries_class (), + gfs_output_particle_class (), + + gfs_output_scalar_class (), + gfs_output_scalar_norm_class (), + gfs_output_scalar_stats_class (), + gfs_output_scalar_sum_class (), + gfs_output_scalar_maxima_class (), + gfs_output_scalar_histogram_class (), + gfs_output_error_norm_class (), + gfs_output_correlation_class (), + gfs_output_squares_class (), + gfs_output_streamline_class (), + gfs_output_ppm_class (), + + NULL}; + + guint n = 0; + gpointer * c = klass; + while (*(c++)) n++; + classes = g_malloc ((n + 1)*sizeof (gpointer)); + memcpy (classes, klass, (n + 1)*sizeof (gpointer)); + } + return classes; +} + hunk ./src/init.c 258 - gfs_global_class (); - gfs_simulation_class (); - gfs_ocean_class (); - gfs_advection_class (); - gfs_poisson_class (); - - gfs_variable_class (); - gfs_variable_tracer_class (); - gfs_variable_residual_class (); - gfs_variable_filtered_class (); - gfs_variable_curvature_class (); - - gfs_surface_bc_class (); - - gfs_box_class (); - gfs_box_not_adapt_class (); - gfs_gedge_class (); - - gfs_bc_dirichlet_class (); - gfs_bc_neumann_class (); - gfs_bc_flather_class (); - - gfs_boundary_class (); - gfs_boundary_inflow_constant_class (); - gfs_boundary_outflow_class (); -#ifdef HAVE_MPI - gfs_boundary_mpi_class (); -#endif /* HAVE_MPI */ - - gfs_refine_class (); - gfs_refine_solid_class (); - gfs_refine_surface_class (); - gfs_refine_distance_class (); - gfs_refine_height_class (); - - gfs_event_class (); - gfs_init_class (); - gfs_init_flow_constant_class (); - gfs_init_fraction_class (); -#if FTT_2D - gfs_init_vorticity_class (); -#endif /* FTT_2D */ - gfs_adapt_class (); - gfs_adapt_vorticity_class (); - gfs_adapt_streamline_curvature_class (); - gfs_adapt_function_class (); - gfs_adapt_gradient_class (); - gfs_adapt_curvature_class (); - gfs_adapt_not_box_class (); - gfs_event_sum_class (); - gfs_event_harmonic_class (); - gfs_event_stop_class (); - gfs_event_script_class (); - gfs_source_generic_class (); - gfs_source_scalar_class (); - gfs_source_class (); - gfs_source_control_class (); - gfs_source_diffusion_class (); - gfs_source_diffusion_explicit_class (); - gfs_source_velocity_class (); - gfs_source_viscosity_class (); - gfs_source_friction_class (); - gfs_source_coriolis_class (); - gfs_source_tension_class (); -#if !FTT_2D - gfs_source_hydrostatic_class (); -#endif /* 2D3 or 3D */ - gfs_remove_droplets_class (); - gfs_remove_ponds_class (); - gfs_event_filter_class (); - - gfs_output_class (); - gfs_output_time_class (); - gfs_output_progress_class (); - gfs_output_projection_stats_class (); - gfs_output_diffusion_stats_class (); - gfs_output_solid_stats_class (); - gfs_output_adapt_stats_class (); - gfs_output_timing_class (); - gfs_output_balance_class (); - gfs_output_solid_force_class (); - gfs_output_location_class (); - gfs_output_simulation_class (); - gfs_output_boundaries_class (); - gfs_output_particle_class (); - - gfs_output_scalar_class (); - gfs_output_scalar_norm_class (); - gfs_output_scalar_stats_class (); - gfs_output_scalar_sum_class (); - gfs_output_scalar_maxima_class (); - gfs_output_scalar_histogram_class (); - gfs_output_error_norm_class (); - gfs_output_correlation_class (); - gfs_output_squares_class (); - gfs_output_streamline_class (); - gfs_output_ppm_class (); + gfs_classes (); hunk ./src/init.h 23 +#include + hunk ./src/init.h 29 +GtsObjectClass ** gfs_classes (void); hunk ./test/gfs2tex 9 +import gfsclasses hunk ./test/gfs2tex 14 -dico = {} -for f in glob.glob("../doc/html/*.html"): - gfs2tex.dictionary(dico,open(f)) - hunk ./test/gfs2tex 20 - example.write(dico) + example.write(gfsclasses.klass)