Rheolef  7.1
an efficient C++ finite element environment
iorheo.cc
Go to the documentation of this file.
1 //
22 // Input/Output option management
23 //
24 // author: Pierre.Saramito@imag.fr
25 //
26 // date: 4 february 1997
27 //
28 // HOW TO ADD NEW OPTION ?
29 //
30 // 1st case: it's only a boolean flag, e.g.
31 // cout << color
32 // => add it
33 // a) as an enumerate flag in `enum fmt_mode'
34 // b) and in the `boolean' iorheo.h declaration
35 // Jocelyn: also add it below in "force intialization" !!!
36 //
37 // 2nd case: you want to store e.g. a string or an int. e.g.
38 // cout << ncolor(10)
39 // => add it
40 // a) in iorheo.h in `scalar' declaration
41 // b) in iorheo.c in `RHEO_SCALAR'
42 // c) in iorheo constructor initializer
43 //
44 # include "rheolef/iorheo.h"
45 namespace rheolef {
46 using namespace std;
47 
48 //
49 // RHEO_SCALAR's
50 //
51 # define boolean(stream,name)
52 # define member(stream,name,groupe)
53 # define i_scalar(t,a) iorheobase_io_scalar_body_macro(iorheo,t,a)
54 # define o_scalar(t,a) iorheobase_io_scalar_body_macro(iorheo,t,a)
55 # define io_scalar(t,a) iorheobase_io_scalar_body_macro(iorheo,t,a)
56 # include "rheolef/iorheo-members.h"
57 # undef boolean
58 # undef member
59 # undef i_scalar
60 # undef o_scalar
61 # undef io_scalar
62 
63 //
64 // static member declaration:
65 //
66 iorheo::flag_type iorheo::static_field;
67 iorheo::flag_type iorheo::color_field;
68 iorheo::flag_type iorheo::format_field;
69 iorheo::flag_type iorheo::render_field;
70 
71 iorheo::flag_type iorheo::default_f;
72 iorheo::flag_type iorheo::globals_;
73 //
74 // initialization of static data member
75 //
76 #define IORHEO_PREFIX
77 iorheo::force_initialization::force_initialization() {
78 
79  IORHEO_PREFIX default_f [verbose] = true;
80  IORHEO_PREFIX default_f [execute] = true;
81  IORHEO_PREFIX default_f [clean] = true;
82  IORHEO_PREFIX default_f [rheo] = true;
83  IORHEO_PREFIX default_f [color] = true;
84  IORHEO_PREFIX default_f [fill] = true;
85  IORHEO_PREFIX default_f [fastfieldload] = true;
86  IORHEO_PREFIX default_f [bezieradapt] = true;
87 
88  IORHEO_PREFIX static_field [verbose] = true;
89  IORHEO_PREFIX static_field [execute] = true;
90  IORHEO_PREFIX static_field [clean] = true;
91 
92  IORHEO_PREFIX color_field [black_and_white] = true;
93  IORHEO_PREFIX color_field [gray] = true;
94  IORHEO_PREFIX color_field [color] = true;
95 
96  IORHEO_PREFIX format_field [rheo] = true;
97 
98  IORHEO_PREFIX format_field [hb] = true;
99  IORHEO_PREFIX format_field [matrix_market] = true;
100  IORHEO_PREFIX format_field [ml] = true;
101  IORHEO_PREFIX format_field [matlab] = true;
102  IORHEO_PREFIX format_field [sparse_matlab] = true;
103  IORHEO_PREFIX format_field [dump] = true;
104 
105  IORHEO_PREFIX format_field [bamg] = true;
106  IORHEO_PREFIX format_field [peschetola] = true;
107  IORHEO_PREFIX format_field [grummp] = true;
108  IORHEO_PREFIX format_field [gmsh] = true;
109  IORHEO_PREFIX format_field [gmsh_pos] = true;
110  IORHEO_PREFIX format_field [mmg3d] = true;
111  IORHEO_PREFIX format_field [tetgen] = true;
112  IORHEO_PREFIX format_field [qmg] = true;
113  IORHEO_PREFIX format_field [vtkdata] = true;
114  IORHEO_PREFIX format_field [vtkpolydata] = true;
115 
116  IORHEO_PREFIX format_field [ps] = true;
117  IORHEO_PREFIX format_field [gnuplot] = true;
118  IORHEO_PREFIX format_field [plotmtv] = true;
119  IORHEO_PREFIX format_field [vtk] = true;
120  IORHEO_PREFIX format_field [paraview] = true;
121  IORHEO_PREFIX format_field [geomview] = true;
122  IORHEO_PREFIX format_field [x3d] = true;
123  IORHEO_PREFIX format_field [atom] = true;
124 
125  IORHEO_PREFIX render_field [logscale] = true;
126  IORHEO_PREFIX render_field [grid] = true;
127  IORHEO_PREFIX render_field [domains] = true;
128  IORHEO_PREFIX render_field [fill] = true;
129  IORHEO_PREFIX render_field [tube] = true;
130  IORHEO_PREFIX render_field [ball] = true;
131  IORHEO_PREFIX render_field [shrink] = true;
132  IORHEO_PREFIX render_field [full] = true;
133  IORHEO_PREFIX render_field [stereo] = true;
134  IORHEO_PREFIX render_field [cut] = true;
135  IORHEO_PREFIX render_field [iso] = true;
136  IORHEO_PREFIX render_field [split] = true;
137  IORHEO_PREFIX render_field [volume] = true;
138  IORHEO_PREFIX render_field [velocity] = true;
139  IORHEO_PREFIX render_field [deformation] = true;
140  IORHEO_PREFIX render_field [lattice] = true;
141  IORHEO_PREFIX render_field [showlabel] = true;
142  IORHEO_PREFIX render_field [skipvtk] = false;
143  IORHEO_PREFIX render_field [reader_on_stdin] = true;
144 
145  IORHEO_PREFIX globals_ = default_f & static_field;
146 }
147 static iorheo::force_initialization dummy;
148 //
149 // constructor and destructor, copy and assignement
150 //
151 iorheo::iorheo()
152  :
153  rhstype_(string("")),
154  rhsfmt_(string("")),
155  nrhs_(0),
156  ivec_(0),
157  nptr_(0),
158  nidx_(0),
159  line_no_(0),
160  subdivide_(0),
161  ncolor_(0),
162  basename_(string("")),
163  image_format_(string("")),
164  mark_(string("")),
165  label_(string("")),
166  isovalue_(std::numeric_limits<Float>::max()),
167  n_isovalue_(15),
168  n_isovalue_negative_(0),
169  vectorscale_(1),
170  anglecorner_(0),
171  rounding_precision_(0),
172  branch_counter_(0),
173  flags_()
174 {
175  // initialized may be called before main() starts
176  // constructor of global variable "dummy" is used for that
177  // but some compiler/linker do not call constructor of global vars
178  check_macro (default_f != flag_type(), "static data member not initialized");
179 
180  flags_ = default_f;
181 }
182 iorheo::~iorheo()
183 {
184  // trace_macro ("iorheo::dstor");
185 }
186 // ---------------------------------------------------------------------
187 // trivial memory handler instanciation
188 // ---------------------------------------------------------------------
189 
190 // static variable initialization in template class:
191 template <>
193 
194 // class instanciation:
195 template class iorheobase_memory_handler<iorheo>;
196 
197 iorheo*
198 iorheo::get_pointer (ios& s)
199 {
201 }
202 // ---------------------------------------------------------------------
203 // flags
204 // ---------------------------------------------------------------------
205 iorheo::flag_type
206 iorheo::flags () const
207 {
208  flag_type ret_f = (globals_ & static_field) | (flags_ & (~static_field));
209  return ret_f;
210 }
211 iorheo::flag_type
212 iorheo::flags (flag_type f1)
213 {
214  flag_type old_f = flags();
215  globals_ = f1 & static_field;
216  flags_ = f1 & (~static_field);
217  return old_f;
218 }
219 iorheo::flag_type
220 iorheo::setf (size_type i_add)
221 {
222  flag_type new_f = flags();
223  new_f [i_add] = true;
224  return flags(new_f);
225 }
226 iorheo::flag_type
227 iorheo::setf (size_type i_add, flag_type field)
228 {
229  flag_type new_f = flags() & (~field);
230  new_f [i_add] = field [i_add];
231  return flags(new_f);
232 }
233 iorheo::flag_type
234 iorheo::unsetf (size_type i_del)
235 {
236  flag_type new_f = flags();
237  new_f [i_del] = false;
238  return flags(new_f);
239 }
240 //
241 // for extern usage at application level
242 //
243 iorheo::flag_type
244 iorheo::flags (ios& s)
245 {
246  return iorheo::get_pointer(s) -> flags();
247 }
248 iorheo::flag_type
249 iorheo::flags (ios& s, flag_type f)
250 {
251  return iorheo::get_pointer(s) -> flags(f);
252 }
253 iorheo::flag_type
254 iorheo::setf (ios& s, size_type i_add)
255 {
256  return iorheo::get_pointer(s) -> setf (i_add);
257 }
258 iorheo::flag_type
259 iorheo::setf (ios& s, size_type i_add, flag_type field)
260 {
261  return iorheo::get_pointer(s) -> setf (i_add, field);
262 }
263 iorheo::flag_type
264 iorheo::unsetf (ios& s, size_type i_del)
265 {
266  return iorheo::get_pointer(s) -> unsetf (i_del);
267 }
268 
269 } // namespace rheolef
field::size_type size_type
Definition: branch.cc:425
see the Float page for the full documentation
see the field page for the full documentation
static iorheo::force_initialization dummy
Definition: iorheo.cc:147
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
void split(const geo &omega)
Definition: geo_split.cc:28
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format format format format format format x3d
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format bamg
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format peschetola
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format qmg
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format matrix_market
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format format format format format format format paraview
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format vtkdata
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format format format format format gnuplot
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format format format geomview
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format hb
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format format vtk
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format gmsh_pos
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format vtkpolydata
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format grummp
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format matlab
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format format format format dump
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format tetgen
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format ml
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format mmg3d
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color rheo
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format gmsh
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin gray
#define IORHEO_PREFIX
Definition: iorheo.cc:76
This file is part of Rheolef.
Definition: cavity_dg.h:29