Rheolef  7.1
an efficient C++ finite element environment
iofem.h
Go to the documentation of this file.
1 # ifndef _RHEO_IOFEM_H
2 # define _RHEO_IOFEM_H
23 
24 /*Class:iofem
25 NAME: @code{iofem} - input and output finite element manipulators
26 @clindex iofem
27 DESCRIPTION:
28  @noindent
29  This class implements some specific finite element manipulators.
30  For a general presentation of stream manipulators, reports
31  to class @code{iostream}.
32 
33 VALUATED MANIPULATORS:
34  @table @code
35 @cindex origin
36 @cindex normal
37 @findex origin
38 @findex normal
39  @itemx origin
40  @itemx normal
41  set a cutting plane for visualizations and post-processing.
42  @example
43  cout << cut << origin(point(0.5, 0.5, 0.5)) << normal(point(1,1,0) << uh;
44  @end example
45 @cindex topography
46 @findex topography
47  @itemx topography
48  specifies the topography field when representing a bidimensionnal
49  field in tridimensionnal elevation.
50  @example
51  cout << topography(zh) << uh;
52  @end example
53  This manipulator takes an agument that specifies a scalar field value
54  @code{zh} for the elevation, while @code{uh} is the scalar field
55  to represent. Then, the z-elevation takes zh(x,y)+uh(x,y).
56  @end table
57 
58 AUTHOR:
59  Pierre.Saramito@imag.fr
60 DATE: 4 february 1997
61 End: */
62 
63 #include "rheolef/iorheobase.h"
64 #include "rheolef/field.h"
65 namespace rheolef {
66 
67 class iofem {
68 public:
69  // ------------------------------------------------------
70  // options associated to a value
71  // ------------------------------------------------------
72 #define o_scalar(t, a) iorheobase_def_scalar_macro (iofem,t, a)
73  o_scalar (field_sequential, topography)
74  o_scalar (point, origin)
76  o_scalar (point_basic<size_t>, resolution)
77 # undef o_scalar
78 
79  // ------------------------------------------------------
80  // 3) flags access
81  // ------------------------------------------------------
82 public:
83  // basics members
84  iofem();
85  ~iofem();
86 
87  static long flags (std::ios& s);
88  static long flags (std::ios& s, long f);
89  static long setf (std::ios& s, long add_f);
90  static long setf (std::ios& s, long add_f, long field);
91  static long unsetf (std::ios& s, long del_f);
92 
93 protected:
94  // ------------------------------------------------------
95  // memory handler
96  // ------------------------------------------------------
97 protected:
98  // local memory handler
99  static iofem* get_pointer (std::ios& s);
100 };
101 #define o_scalar(t, a) iorheobase_manip_scalar_macro (iofem,t, a, o)
102  o_scalar (field_sequential, topography)
103  o_scalar (point, origin)
105  o_scalar (point_basic<size_t>, resolution)
106 # undef o_scalar
107 }// namespace rheolef
108 # endif /* _RHEO_IOFEM_H */
see the field page for the full documentation
see the point page for the full documentation
static iofem * get_pointer(std::ios &s)
Definition: iofem.cc:66
o_scalar(field_sequential, topography) o_scalar(point
static long unsetf(std::ios &s, long del_f)
static long setf(std::ios &s, long add_f, long field)
static long flags(std::ios &s)
static long setf(std::ios &s, long add_f)
static long flags(std::ios &s, long f)
field_basic< Float, sequential > field_sequential
Definition: field.h:421
This file is part of Rheolef.
o_scalar(field_sequential, topography) o_scalar(point
details::field_expr_v2_nonlinear_terminal_function< details::normal_pseudo_function< Float > > normal()
normal: see the expression page for the full documentation
Definition: cavity_dg.h:29