28#include "rheolef/field.h"
29#include "rheolef/piola_util.h"
30#include "rheolef/rheostream.h"
31#include "rheolef/iorheo.h"
32#include "rheolef/field_evaluate.h"
33#include "rheolef/space_component.h"
34#include "rheolef/field_expr.h"
42geo_put_gmsh (odiststream& ods,
const geo_basic<T,sequential>&);
52 gmsh << setprecision(numeric_limits<T>::digits10);
58 default:
error_macro (
"put_gmsh: do not known how to print " << uh.
valued() <<
"-valued field");
64 gmsh <<
"$NodeData" << endl
66 <<
"\"" <<
name <<
"\"" << endl
71 << n_gmsh_comp << endl
72 << uh.
get_geo().n_node() << endl;
78 gmsh << idof+1 <<
" " << uh.
dof(idof) << endl;
88 std::vector<details::field_rdof_sliced_const<field_basic<T,sequential>>> uh_comp (n_comp);
89 for (
size_type i_comp = 0; i_comp < n_comp; i_comp++) {
90 uh_comp[i_comp].proxy_assign (uh[i_comp]);
93 std::vector<T> u_dof (n_comp);
96 for (
size_type i_comp = 0; i_comp < n_comp; i_comp++) {
97 gmsh <<
" " << uh[i_comp].
dof (idof);
99 for (
size_type i_comp = n_comp; i_comp < 3; i_comp++) {
114 gmsh << t00.
dof(idof) <<
" 0 0 "
125 gmsh << t00.
dof(idof) <<
" " << t01.
dof(idof) <<
" 0 "
126 << t01.
dof(idof) <<
" " << t11.
dof(idof) <<
" 0 "
139 gmsh << t00.
dof(idof) <<
" " << t01.
dof(idof) <<
" " << t02.
dof(idof) <<
" "
140 << t01.
dof(idof) <<
" " << t11.
dof(idof) <<
" " << t12.
dof(idof) <<
" "
141 << t02.
dof(idof) <<
" " << t12.
dof(idof) <<
" " << t22.
dof(idof) << endl;
148 default:
error_macro (
"put_gmsh: do not known how to print " << uh.
valued() <<
"-valued field");
150 gmsh <<
"$EndNodeData" << endl;
151 }
else if (uh.
get_space().degree() == 0) {
155 gmsh <<
"$ElementData" << endl
157 <<
"\"" <<
name <<
"\"" << endl
162 << n_gmsh_comp << endl
163 << uh.
get_geo().size() << endl;
169 gmsh << idof+1 <<
" " << uh.
dof(idof) << endl;
173 default:
error_macro (
"put_gmsh: do not known how to print " << uh.
valued() <<
"-valued field");
175 gmsh <<
"$EndElementData" << endl;
181 gmsh <<
"$ElementNodeData" << endl
183 <<
"\"" <<
name <<
"\"" << endl
188 << n_gmsh_comp << endl
189 << uh.
get_geo().size() << endl;
196 std::vector<size_type> idof;
200 gmsh << ie+1 <<
" " << idof.size();
201 for (
size_type loc_idof = 0; loc_idof < idof.size(); loc_idof++) {
202 gmsh <<
" " << uh.
dof(idof[loc_idof]);
208 default:
error_macro (
"put_gmsh: do not known how to print " << uh.
valued() <<
"-valued field");
210 gmsh <<
"$EndElementNodeData" << endl;
field::size_type size_type
const geo_type & get_geo() const
const space_type & get_space() const
const std::string & valued() const
size_type size(size_type dim) const
see the geo_element page for the full documentation
odiststream: see the diststream page for the full documentation
void dis_idof(const geo_element &K, std::vector< size_type > &dis_idof) const
#define error_macro(message)
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
size_type ndof(const basis_basic< T > &b, const geo_size &gs, size_type map_dim)
This file is part of Rheolef.
template odiststream & field_put_gmsh< Float >(odiststream &, const field_basic< Float, sequential > &, std::string)
odiststream & field_put_gmsh(odiststream &, const field_basic< T, sequential > &, std::string)
odiststream & geo_put_gmsh(odiststream &ods, const geo_basic< T, sequential > &)