44 if (name ==
"") { name = uh.
get_space().valued(); }
46 gmsh << setprecision(numeric_limits<T>::digits10);
48 "gmsh: unsupported " << uh.
get_space().get_basis().name() <<
" approximation");
50 "gmsh: unsupported geo order > 1");
79 gmsh <<
"View \"" << name <<
"\" {" << endl;
93 for (size_type ie = 0, ne = omega.size(); ie < ne; ie++) {
96 for (size_type iloc = 0, nloc = K.
size(); iloc < nloc; iloc++) {
98 for (size_type i_comp = 0; i_comp < 3; i_comp++) {
100 if (i_comp != 2)
gmsh <<
",";
102 if (iloc != nloc-1)
gmsh <<
",";
105 for (size_type iloc = 0, nloc = K.
size(); iloc < nloc; iloc++) {
107 if (iloc != nloc-1)
gmsh <<
",";
109 gmsh <<
"};" << endl;
123 size_type
d = uh.
get_geo().dimension();
126 for (size_type i_comp = 0; i_comp <
d; i_comp++) {
127 for (size_type j_comp = 0; j_comp <
d; j_comp++) {
128 uh_comp[i_comp][j_comp].proxy_assign(uh(i_comp,j_comp));
132#define HAVE_ID_DEFAULT_TENSOR
133#ifdef HAVE_ID_DEFAULT_TENSOR
135 value (0,0) = value (1,1) = value (2,2) = 1;
137 for (size_type ie = 0, ne = omega.size(); ie < ne; ie++) {
140 for (size_type iloc = 0, nloc = K.
size(); iloc < nloc; iloc++) {
142 for (size_type i_comp = 0; i_comp < 3; i_comp++) {
144 if (i_comp != 2)
gmsh <<
",";
146 if (iloc != nloc-1)
gmsh <<
",";
149 for (size_type iloc = 0, nloc = K.
size(); iloc < nloc; iloc++) {
150 size_type inod = K[iloc];
152 for (size_type i_comp = 0; i_comp <
d; i_comp++) {
153 for (size_type j_comp = 0; j_comp <
d; j_comp++) {
154 value(i_comp,j_comp) = uh (i_comp,j_comp).
dof (inod);
156 for (size_type i_comp = 0; i_comp < 3; i_comp++) {
157 for (size_type j_comp = 0; j_comp < 3; j_comp++) {
158 gmsh << value(i_comp,j_comp);
159 if (i_comp != 2 || j_comp != 2 || iloc != nloc-1)
gmsh <<
",";
162 gmsh <<
"};" << endl;
166 default:
error_macro (
"put_gmsh: do not known how to print " << uh.
valued() <<
"-valued field");
168 gmsh <<
"};" << endl;
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")