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
peschetola
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format peschetola
Definition: iorheo-members.h:68
tetgen
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format tetgen
Definition: iorheo-members.h:80
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 format format format format format format format format format format format format paraview
Definition: iorheo-members.h:125
check_macro
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
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 vtkdata
Definition: iorheo-members.h:91
field
see the field page for the full documentation
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 matrix_market
Definition: iorheo-members.h:103
rheolef::dummy
static iorheo::force_initialization dummy
Definition: iorheo.cc:147
dump
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
Definition: iorheo-members.h:119
IORHEO_PREFIX
#define IORHEO_PREFIX
Definition: iorheo.cc:76
ml
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
Definition: iorheo-members.h:106
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 hb
Definition: iorheo-members.h:100
bamg
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format bamg
Definition: iorheo-members.h:71
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 matlab
Definition: iorheo-members.h:109
x3d
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
Definition: iorheo-members.h:123
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 format format format format format format format format format vtk
Definition: iorheo-members.h:113
gmsh
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
Definition: iorheo-members.h:83
mkgeo_ball.clean
clean
Definition: mkgeo_ball.sh:335
mmg3d
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format mmg3d
Definition: iorheo-members.h:77
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 format format gnuplot
Definition: iorheo-members.h:121
gray
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin gray
Definition: iorheo-members.h:62
grummp
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format grummp
Definition: iorheo-members.h:74
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
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 qmg
Definition: iorheo-members.h:88
Float
see the Float page for the full documentation
mkgeo_ball.verbose
verbose
Definition: mkgeo_ball.sh:133
rheolef::iorheobase_memory_handler
Definition: iorheobase.h:144
size_type
field::size_type size_type
Definition: branch.cc:425
vtkpolydata
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
Definition: iorheo-members.h:94
rheo
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color rheo
Definition: iorheo-members.h:65
f
Definition: cavity_dg.h:29
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 gmsh_pos
Definition: iorheo-members.h:85
split
void split(const geo &omega)
Definition: geo_split.cc:28
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 format format format format format geomview
Definition: iorheo-members.h:116