Mercurial > fem-fenics-eugenio
annotate src/Mesh.cc @ 268:61830a4f9ab9
Improve formatting
author | Eugenio Gianniti <eugenio.gianniti@mail.polimi.it> |
---|---|
date | Thu, 14 Aug 2014 12:26:55 +0200 |
parents | a61fc34334ca |
children |
rev | line source |
---|---|
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
1 /* |
151 | 2 Copyright (C) 2013 Marco Vassallo <gedeone-octave@users.sourceforge.net> |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
3 |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
4 This program is free software; you can redistribute it and/or modify it under |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
5 the terms of the GNU General Public License as published by the Free Software |
151 | 6 Foundation; either version 3 of the License, or (at your option) any later |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
7 version. |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
8 |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
9 This program is distributed in the hope that it will be useful, but WITHOUT |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
12 details. |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
13 |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
14 You should have received a copy of the GNU General Public License along with |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
15 this program; if not, see <http://www.gnu.org/licenses/>. |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
16 */ |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
17 |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
18 #include "mesh.h" |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
19 #include "meshfunction.h" |
253
5e9b5bbdc56b
Support both DOLFIN 1.3.0 and 1.4.0
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
207
diff
changeset
|
20 #include "dolfin_compat.h" |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
21 #ifdef LATEST_DOLFIN |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
22 #include <dolfin/mesh/MeshPartitioning.h> |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
23 #endif |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
24 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
25 octave_value |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
26 compute_facet_markers (dolfin::Mesh const &, Array <octave_idx_type> const &, |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
27 std::size_t const); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
28 octave_value |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
29 compute_cell_markers (dolfin::Mesh const &, Array <octave_idx_type> const &, |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
30 std::size_t const); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
31 |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
32 DEFUN_DLD (Mesh, args, nargout, "-*- texinfo -*-\n\ |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
33 @deftypefn {Function File} {[@var{mesh_out}, \ |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
34 @var{facet_markers}, @var{cell_markers}]} = \ |
86
66e4aa87c9a1
Rename the function accordingly to dolfin
gedeone-octave <marcovass89@hotmail.it>
parents:
79
diff
changeset
|
35 Mesh (@var{mesh_in}) \n\ |
180
2676200ae226
Improve documentation for pkg release.
gedeone-octave <marcovass89@hotmail.it>
parents:
173
diff
changeset
|
36 Construct a mesh from file or from (p, e, t) format.\n\ |
16
448e01d4411f
Introduce the use of boost::shared_ptr for class members
gedeone-octave <marco.vassallo@outlook.com>
parents:
12
diff
changeset
|
37 The @var{mesh_in} should be either\n\ |
448e01d4411f
Introduce the use of boost::shared_ptr for class members
gedeone-octave <marco.vassallo@outlook.com>
parents:
12
diff
changeset
|
38 @itemize @bullet \n\ |
180
2676200ae226
Improve documentation for pkg release.
gedeone-octave <marcovass89@hotmail.it>
parents:
173
diff
changeset
|
39 @item a string containing the name of the file where the mesh \ |
2676200ae226
Improve documentation for pkg release.
gedeone-octave <marcovass89@hotmail.it>
parents:
173
diff
changeset
|
40 is stored in .xml file\n\ |
2676200ae226
Improve documentation for pkg release.
gedeone-octave <marcovass89@hotmail.it>
parents:
173
diff
changeset
|
41 If the file is not a .xml file you can try to use the command\ |
173
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
42 dolfin-convert directly from the terminal. \n\ |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
43 @item a PDE-tool like structure with matrix fields (p,e,t)\ |
16
448e01d4411f
Introduce the use of boost::shared_ptr for class members
gedeone-octave <marco.vassallo@outlook.com>
parents:
12
diff
changeset
|
44 @end itemize\n\ |
180
2676200ae226
Improve documentation for pkg release.
gedeone-octave <marcovass89@hotmail.it>
parents:
173
diff
changeset
|
45 The output @var{mesh_out} is a representation of the\ |
115
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
46 @var{mesh_in} which is compatible with fem-fenics.\n\ |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
47 Optional outputs @var{facet_markers} and @var{cell_markers} \ |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
48 are MeshFunctions holding the markers extracted from the PDE-tool \ |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
49 representation. \n\ |
180
2676200ae226
Improve documentation for pkg release.
gedeone-octave <marcovass89@hotmail.it>
parents:
173
diff
changeset
|
50 The easiest way for dealing with meshes is using the msh pkg. \n\ |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
51 @seealso{FunctionSpace, DirichletBC}\n\ |
16
448e01d4411f
Introduce the use of boost::shared_ptr for class members
gedeone-octave <marco.vassallo@outlook.com>
parents:
12
diff
changeset
|
52 @end deftypefn") |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
53 { |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
54 int nargin = args.length (); |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
55 octave_value_list retval; |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
56 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
57 if (nargin < 1 || nargin > 1 || nargout > 3) |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
58 { print_usage (); } |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
59 else |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
60 { |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
61 if (!error_state) |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
62 { |
115
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
63 |
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
64 if (! mesh_type_loaded) |
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
65 { |
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
66 mesh::register_type (); |
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
67 mesh_type_loaded = true; |
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
68 mlock (); |
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
69 } |
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
70 |
12
b7c74c0bdabd
New functions which get a (p,e,t) matrix from a mesh object
gedeone-octave <marco.vassallo@outlook.com>
parents:
10
diff
changeset
|
71 if (args(0).is_string () == true) |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
72 { |
12
b7c74c0bdabd
New functions which get a (p,e,t) matrix from a mesh object
gedeone-octave <marco.vassallo@outlook.com>
parents:
10
diff
changeset
|
73 std::string filename = args(0).string_value (); |
b7c74c0bdabd
New functions which get a (p,e,t) matrix from a mesh object
gedeone-octave <marco.vassallo@outlook.com>
parents:
10
diff
changeset
|
74 //if the filename is not valid, dolfin takes care of it |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
75 retval(0) = new mesh (filename); |
12
b7c74c0bdabd
New functions which get a (p,e,t) matrix from a mesh object
gedeone-octave <marco.vassallo@outlook.com>
parents:
10
diff
changeset
|
76 } |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
77 |
115
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
78 else if (args(0).is_map () == true) |
44
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
79 { |
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
80 octave_scalar_map a = args(0).scalar_map_value (); |
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
81 Array<double> p = a.contents ("p").matrix_value (); |
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
82 Array<octave_idx_type> t = a.contents ("t").matrix_value (); |
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
83 Array<octave_idx_type> e = a.contents ("e").matrix_value (); |
12
b7c74c0bdabd
New functions which get a (p,e,t) matrix from a mesh object
gedeone-octave <marco.vassallo@outlook.com>
parents:
10
diff
changeset
|
84 |
44
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
85 if (! error_state) |
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
86 { |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
87 retval(0) = new mesh (p, e, t); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
88 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
89 if (nargout >= 2) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
90 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
91 if (! meshfunction_type_loaded) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
92 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
93 meshfunction::register_type (); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
94 meshfunction_type_loaded = true; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
95 mlock (); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
96 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
97 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
98 mesh const & msh_ov = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
99 static_cast <mesh const &> (retval(0).get_rep ()); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
100 dolfin::Mesh const & msh = msh_ov.get_msh (); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
101 std::size_t const D = p.rows (); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
102 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
103 retval(1) = compute_facet_markers (msh, e, D); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
104 if (nargout == 3) |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
105 { retval(2) = compute_cell_markers (msh, t, D); } |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
106 } |
44
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
107 } |
fca8c3d75036
register_type is called before every type is used.
gedeone-octave <marco.vassallo@outlook.com>
parents:
16
diff
changeset
|
108 } |
115
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
109 |
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
110 else |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
111 { error ("Mesh: the argument you provide is invalid"); } |
115
41614aa82191
Improved error messagging.
gedeone-octave <marcovass89@hotmail.it>
parents:
114
diff
changeset
|
112 |
10
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
113 } |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
114 } |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
115 return retval; |
277b60c6618a
New function: create a mesh
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff
changeset
|
116 } |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
117 |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
118 mesh::mesh (Array<double> & p, |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
119 Array<octave_idx_type> & e, |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
120 Array<octave_idx_type> & t) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
121 { |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
122 std::size_t D = p.rows (); |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
123 if (D < 2 || D > 3) |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
124 { error ("Mesh constructor: only 2D or 3D meshes are supported"); } |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
125 else |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
126 { |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
127 dolfin::MeshEditor editor; |
253
5e9b5bbdc56b
Support both DOLFIN 1.3.0 and 1.4.0
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
207
diff
changeset
|
128 SHARED_PTR <dolfin::Mesh> msh (new dolfin::Mesh ()); |
114
af287918111e
Use boost::shared_ptr.
gedeone-octave <marcovass89@hotmail.it>
parents:
86
diff
changeset
|
129 editor.open (*msh, D, D); |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
130 editor.init_vertices (p.cols ()); |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
131 editor.init_cells (t.cols ()); |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
132 |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
133 if (D == 2) |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
134 { |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
135 for (uint i = 0; i < p.cols (); ++i) |
173
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
136 editor.add_vertex (i, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
137 p.xelem (0, i), |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
138 p.xelem (1, i)); |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
139 |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
140 for (uint i = 0; i < t.cols (); ++i) |
173
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
141 editor.add_cell (i, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
142 t.xelem (0, i) - 1, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
143 t.xelem (1, i) - 1, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
144 t.xelem (2, i) - 1); |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
145 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
146 |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
147 if (D == 3) |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
148 { |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
149 for (uint i = 0; i < p.cols (); ++i) |
173
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
150 editor.add_vertex (i, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
151 p.xelem (0, i), |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
152 p.xelem (1, i), |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
153 p.xelem (2, i)); |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
154 |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
155 for (uint i = 0; i < t.cols (); ++i) |
173
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
156 editor.add_cell (i, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
157 t.xelem (0, i) - 1, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
158 t.xelem (1, i) - 1, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
159 t.xelem (2, i) - 1, |
9e944b0d0fc8
Some Formatting improvements (?)
gedeone-octave <marcovass89@hotmail.it>
parents:
168
diff
changeset
|
160 t.xelem (3, i) - 1); |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
161 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
162 |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
163 editor.close (); |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
164 |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
165 // store information associated with e |
114
af287918111e
Use boost::shared_ptr.
gedeone-octave <marcovass89@hotmail.it>
parents:
86
diff
changeset
|
166 msh->init (D - 1); |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
167 dolfin::MeshValueCollection<std::size_t> facet (*msh, D - 1); |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
168 std::size_t num_side_edges = e.cols (); |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
169 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
170 unsigned const size = |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
171 #ifdef LATEST_DOLFIN |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
172 dolfin::MPI::size (MPI_COMM_WORLD); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
173 #else |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
174 dolfin::MPI::num_processes (); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
175 #endif |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
176 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
177 if (size == 1) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
178 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
179 if (D == 2) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
180 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
181 for (uint i = 0; i < num_side_edges; ++i) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
182 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
183 dolfin::Vertex v (*msh, e.xelem (0, i) - 1); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
184 for (dolfin::FacetIterator f (v); ! f.end (); ++f) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
185 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
186 if ((*f).entities(0)[0] == e.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
187 && (*f).entities(0)[1] == e.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
188 || (*f).entities(0)[0] == e.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
189 && (*f).entities(0)[1] == e.xelem (0, i) - 1) |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
190 { |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
191 std::pair <std::size_t, std::size_t> |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
192 idxvl ((*f).index (), e.xelem (4, i)); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
193 msh->domains ().set_marker (idxvl, D - 1); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
194 break; |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
195 } |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
196 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
197 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
198 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
199 |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
200 if (D == 3) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
201 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
202 for (uint i = 0; i < num_side_edges; ++i) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
203 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
204 dolfin::Vertex v (*msh, e.xelem (0, i) - 1); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
205 for (dolfin::FacetIterator f (v); ! f.end (); ++f) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
206 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
207 if ((*f).entities(0)[0] == e(0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
208 && (*f).entities(0)[1] == e.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
209 && (*f).entities(0)[2] == e.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
210 || (*f).entities(0)[0] == e.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
211 && (*f).entities(0)[1] == e.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
212 && (*f).entities(0)[2] == e.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
213 || (*f).entities(0)[0] == e.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
214 && (*f).entities(0)[1] == e.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
215 && (*f).entities(0)[2] == e.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
216 || (*f).entities(0)[0] == e.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
217 && (*f).entities(0)[1] == e.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
218 && (*f).entities(0)[2] == e.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
219 || (*f).entities(0)[0] == e.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
220 && (*f).entities(0)[1] == e.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
221 && (*f).entities(0)[2] == e.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
222 || (*f).entities(0)[0] == e.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
223 && (*f).entities(0)[1] == e.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
224 && (*f).entities(0)[2] == e.xelem (0, i) - 1) |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
225 { |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
226 std::pair <std::size_t, std::size_t> |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
227 idxvl ((*f).index (), e.xelem (9, i)); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
228 msh->domains ().set_marker (idxvl, D - 1); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
229 break; |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
230 } |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
231 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
232 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
233 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
234 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
235 |
207
b67de1926ed0
Change internal use of dolfin functions following new API of FEniCS 1.3.0
gedeone-octave <marcovass89@hotmail.it>
parents:
181
diff
changeset
|
236 dolfin::MeshValueCollection<std::size_t> cell (*msh, D); |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
237 std::size_t num_cells = t.cols (); |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
238 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
239 if (size == 1) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
240 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
241 if (D == 2) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
242 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
243 for (uint i = 0; i < num_cells; ++i) |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
244 { |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
245 dolfin::Vertex v (*msh, t.xelem (0, i) - 1); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
246 for (dolfin::CellIterator f (v); ! f.end (); ++f) |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
247 { |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
248 if ((*f).entities(0)[0] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
249 && (*f).entities(0)[1] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
250 && (*f).entities(0)[2] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
251 || (*f).entities(0)[0] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
252 && (*f).entities(0)[1] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
253 && (*f).entities(0)[2] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
254 || (*f).entities(0)[0] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
255 && (*f).entities(0)[1] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
256 && (*f).entities(0)[2] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
257 || (*f).entities(0)[0] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
258 && (*f).entities(0)[1] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
259 && (*f).entities(0)[2] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
260 || (*f).entities(0)[0] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
261 && (*f).entities(0)[1] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
262 && (*f).entities(0)[2] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
263 || (*f).entities(0)[0] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
264 && (*f).entities(0)[1] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
265 && (*f).entities(0)[2] == t.xelem (0, i) - 1) |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
266 { |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
267 std::pair <std::size_t, std::size_t> |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
268 idxvl ((*f).index (), t.xelem (3, i)); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
269 msh->domains ().set_marker (idxvl, D); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
270 break; |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
271 } |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
272 } |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
273 } |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
274 } |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
275 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
276 if (D == 3) |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
277 { |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
278 for (uint i = 0; i < num_cells; ++i) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
279 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
280 dolfin::Vertex v (*msh, t.xelem (0, i) - 1); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
281 for (dolfin::CellIterator f (v); ! f.end (); ++f) |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
282 { |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
283 if ((*f).entities(0)[0] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
284 && (*f).entities(0)[1] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
285 && (*f).entities(0)[2] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
286 && (*f).entities(0)[3] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
287 || (*f).entities(0)[0] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
288 && (*f).entities(0)[1] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
289 && (*f).entities(0)[2] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
290 && (*f).entities(0)[3] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
291 || (*f).entities(0)[0] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
292 && (*f).entities(0)[1] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
293 && (*f).entities(0)[2] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
294 && (*f).entities(0)[3] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
295 || (*f).entities(0)[0] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
296 && (*f).entities(0)[1] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
297 && (*f).entities(0)[2] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
298 && (*f).entities(0)[3] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
299 || (*f).entities(0)[0] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
300 && (*f).entities(0)[1] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
301 && (*f).entities(0)[2] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
302 && (*f).entities(0)[3] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
303 || (*f).entities(0)[0] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
304 && (*f).entities(0)[1] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
305 && (*f).entities(0)[2] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
306 && (*f).entities(0)[3] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
307 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
308 || (*f).entities(0)[0] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
309 && (*f).entities(0)[1] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
310 && (*f).entities(0)[2] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
311 && (*f).entities(0)[3] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
312 || (*f).entities(0)[0] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
313 && (*f).entities(0)[1] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
314 && (*f).entities(0)[2] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
315 && (*f).entities(0)[3] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
316 || (*f).entities(0)[0] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
317 && (*f).entities(0)[1] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
318 && (*f).entities(0)[2] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
319 && (*f).entities(0)[3] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
320 || (*f).entities(0)[0] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
321 && (*f).entities(0)[1] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
322 && (*f).entities(0)[2] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
323 && (*f).entities(0)[3] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
324 || (*f).entities(0)[0] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
325 && (*f).entities(0)[1] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
326 && (*f).entities(0)[2] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
327 && (*f).entities(0)[3] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
328 || (*f).entities(0)[0] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
329 && (*f).entities(0)[1] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
330 && (*f).entities(0)[2] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
331 && (*f).entities(0)[3] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
332 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
333 || (*f).entities(0)[0] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
334 && (*f).entities(0)[1] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
335 && (*f).entities(0)[2] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
336 && (*f).entities(0)[3] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
337 || (*f).entities(0)[0] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
338 && (*f).entities(0)[1] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
339 && (*f).entities(0)[2] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
340 && (*f).entities(0)[3] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
341 || (*f).entities(0)[0] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
342 && (*f).entities(0)[1] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
343 && (*f).entities(0)[2] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
344 && (*f).entities(0)[3] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
345 || (*f).entities(0)[0] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
346 && (*f).entities(0)[1] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
347 && (*f).entities(0)[2] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
348 && (*f).entities(0)[3] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
349 || (*f).entities(0)[0] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
350 && (*f).entities(0)[1] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
351 && (*f).entities(0)[2] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
352 && (*f).entities(0)[3] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
353 || (*f).entities(0)[0] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
354 && (*f).entities(0)[1] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
355 && (*f).entities(0)[2] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
356 && (*f).entities(0)[3] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
357 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
358 || (*f).entities(0)[0] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
359 && (*f).entities(0)[1] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
360 && (*f).entities(0)[2] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
361 && (*f).entities(0)[3] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
362 || (*f).entities(0)[0] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
363 && (*f).entities(0)[1] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
364 && (*f).entities(0)[2] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
365 && (*f).entities(0)[3] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
366 || (*f).entities(0)[0] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
367 && (*f).entities(0)[1] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
368 && (*f).entities(0)[2] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
369 && (*f).entities(0)[3] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
370 || (*f).entities(0)[0] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
371 && (*f).entities(0)[1] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
372 && (*f).entities(0)[2] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
373 && (*f).entities(0)[3] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
374 || (*f).entities(0)[0] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
375 && (*f).entities(0)[1] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
376 && (*f).entities(0)[2] == t.xelem (0, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
377 && (*f).entities(0)[3] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
378 || (*f).entities(0)[0] == t.xelem (3, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
379 && (*f).entities(0)[1] == t.xelem (2, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
380 && (*f).entities(0)[2] == t.xelem (1, i) - 1 |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
381 && (*f).entities(0)[3] == t.xelem (0, i) - 1) |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
382 { |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
383 std::pair <std::size_t, std::size_t> |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
384 idxvl ((*f).index (), t.xelem (4, i)); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
385 msh->domains ().set_marker (idxvl, D); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
386 break; |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
387 } |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
388 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
389 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
390 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
391 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
392 |
257
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
393 dolfin::MeshPartitioning::build_distributed_mesh (*msh); |
fb67b636616f
Distribute mesh after creating it
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
253
diff
changeset
|
394 pmsh = msh; |
79
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
395 } |
3e49ef16d74a
The methods of the mesh class are implemented in the file where they are needed.
gedeone-octave <marcovass89@hotmail.it>
parents:
44
diff
changeset
|
396 } |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
397 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
398 octave_value |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
399 compute_facet_markers (dolfin::Mesh const & _msh, |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
400 Array <octave_idx_type> const & e, |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
401 std::size_t const D) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
402 { |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
403 dolfin::MeshFunction <std::size_t> facet (_msh, D - 1, |
262
68cae2998775
Change default value for markers to the maximum representable
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
258
diff
changeset
|
404 std::numeric_limits <std::size_t> |
68cae2998775
Change default value for markers to the maximum representable
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
258
diff
changeset
|
405 ::max ()); |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
406 std::size_t const num_side_edges = e.cols (); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
407 std::vector <std::size_t> const & global_vertices = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
408 _msh.topology ().global_indices (0); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
409 std::vector <std::size_t> const & global_facets = |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
410 _msh.topology ().global_indices (D - 1); |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
411 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
412 if (D == 2) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
413 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
414 for (std::size_t i = 0; i < num_side_edges; ++i) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
415 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
416 std::size_t local_vertex = 0; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
417 std::size_t const e_index = e.xelem (0, i) - 1; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
418 while (local_vertex < global_vertices.size () && |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
419 e_index != global_vertices[local_vertex]) |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
420 { ++local_vertex; } |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
421 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
422 if (local_vertex < global_vertices.size ()) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
423 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
424 dolfin::Vertex v (_msh, local_vertex); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
425 for (dolfin::FacetIterator f (v); ! f.end (); ++f) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
426 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
427 std::size_t const & vertex0 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
428 global_vertices[f->entities(0)[0]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
429 std::size_t const & vertex1 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
430 global_vertices[f->entities(0)[1]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
431 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
432 if (vertex0 == e.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
433 && vertex1 == e.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
434 || vertex0 == e.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
435 && vertex1 == e.xelem (0, i) - 1) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
436 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
437 facet[*f] = e.xelem (4, i); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
438 break; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
439 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
440 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
441 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
442 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
443 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
444 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
445 if (D == 3) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
446 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
447 for (std::size_t i = 0; i < num_side_edges; ++i) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
448 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
449 std::size_t local_vertex = 0; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
450 std::size_t const e_index = e.xelem (0, i) - 1; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
451 while (local_vertex < global_vertices.size () && |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
452 e_index != global_vertices[local_vertex]) |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
453 { ++local_vertex; } |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
454 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
455 if (local_vertex < global_vertices.size ()) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
456 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
457 dolfin::Vertex v (_msh, local_vertex); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
458 for (dolfin::FacetIterator f (v); ! f.end (); ++f) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
459 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
460 std::size_t const & vertex0 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
461 global_vertices[f->entities(0)[0]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
462 std::size_t const & vertex1 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
463 global_vertices[f->entities(0)[1]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
464 std::size_t const & vertex2 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
465 global_vertices[f->entities(0)[2]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
466 |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
467 if (vertex0 == e.xelem (0, i) - 1 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
468 && vertex1 == e.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
469 && vertex2 == e.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
470 || vertex0 == e.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
471 && vertex1 == e.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
472 && vertex2 == e.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
473 || vertex0 == e.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
474 && vertex1 == e.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
475 && vertex2 == e.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
476 || vertex0 == e.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
477 && vertex1 == e.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
478 && vertex2 == e.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
479 || vertex0 == e.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
480 && vertex1 == e.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
481 && vertex2 == e.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
482 || vertex0 == e.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
483 && vertex1 == e.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
484 && vertex2 == e.xelem (0, i) - 1) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
485 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
486 facet[*f] = e.xelem (9, i); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
487 break; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
488 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
489 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
490 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
491 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
492 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
493 |
263
a61fc34334ca
Use meshfunction to mark subdomains
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
262
diff
changeset
|
494 octave_value retval = new meshfunction ("ds", facet); |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
495 return retval; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
496 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
497 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
498 octave_value |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
499 compute_cell_markers (dolfin::Mesh const & _msh, |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
500 Array <octave_idx_type> const & t, |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
501 std::size_t const D) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
502 { |
262
68cae2998775
Change default value for markers to the maximum representable
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
258
diff
changeset
|
503 dolfin::MeshFunction <std::size_t> cell (_msh, D, |
68cae2998775
Change default value for markers to the maximum representable
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
258
diff
changeset
|
504 std::numeric_limits <std::size_t> |
68cae2998775
Change default value for markers to the maximum representable
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
258
diff
changeset
|
505 ::max ()); |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
506 std::size_t const num_cells = t.cols (); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
507 std::vector <std::size_t> const & global_vertices = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
508 _msh.topology ().global_indices (0); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
509 std::vector <std::size_t> const & global_cells = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
510 _msh.topology ().global_indices (D); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
511 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
512 if (D == 2) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
513 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
514 for (std::size_t i = 0; i < num_cells; ++i) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
515 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
516 std::size_t local_vertex = 0; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
517 std::size_t const t_index = t.xelem (0, i) - 1; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
518 while (local_vertex < global_vertices.size () && |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
519 t_index != global_vertices[local_vertex]) |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
520 { ++local_vertex; } |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
521 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
522 if (local_vertex < global_vertices.size ()) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
523 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
524 dolfin::Vertex v (_msh, local_vertex); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
525 for (dolfin::CellIterator f (v); ! f.end (); ++f) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
526 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
527 std::size_t const & vertex0 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
528 global_vertices[f->entities(0)[0]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
529 std::size_t const & vertex1 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
530 global_vertices[f->entities(0)[1]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
531 std::size_t const & vertex2 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
532 global_vertices[f->entities(0)[2]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
533 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
534 if (vertex0 == t.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
535 && vertex1 == t.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
536 && vertex2 == t.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
537 || vertex0 == t.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
538 && vertex1 == t.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
539 && vertex2 == t.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
540 || vertex0 == t.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
541 && vertex1 == t.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
542 && vertex2 == t.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
543 || vertex0 == t.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
544 && vertex1 == t.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
545 && vertex2 == t.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
546 || vertex0 == t.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
547 && vertex1 == t.xelem (0, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
548 && vertex2 == t.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
549 || vertex0 == t.xelem (2, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
550 && vertex1 == t.xelem (1, i) - 1 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
551 && vertex2 == t.xelem (0, i) - 1) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
552 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
553 cell[*f] = t.xelem (3, i); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
554 break; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
555 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
556 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
557 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
558 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
559 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
560 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
561 if (D == 3) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
562 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
563 for (std::size_t i = 0; i < num_cells; ++i) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
564 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
565 std::size_t local_vertex = 0; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
566 std::size_t const t_index = t.xelem (0, i) - 1; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
567 while (local_vertex < global_vertices.size () && |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
568 t_index != global_vertices[local_vertex]) |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
569 { ++local_vertex; } |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
570 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
571 if (local_vertex < global_vertices.size ()) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
572 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
573 dolfin::Vertex v (_msh, local_vertex); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
574 for (dolfin::CellIterator f (v); ! f.end (); ++f) |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
575 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
576 std::size_t const & vertex0 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
577 global_vertices[f->entities(0)[0]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
578 std::size_t const & vertex1 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
579 global_vertices[f->entities(0)[1]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
580 std::size_t const & vertex2 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
581 global_vertices[f->entities(0)[2]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
582 std::size_t const & vertex3 = |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
583 global_vertices[f->entities(0)[3]]; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
584 |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
585 if (vertex0 == t.xelem (0, i) - 1 |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
586 && vertex1 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
587 && vertex2 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
588 && vertex3 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
589 || vertex0 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
590 && vertex1 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
591 && vertex2 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
592 && vertex3 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
593 || vertex0 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
594 && vertex1 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
595 && vertex2 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
596 && vertex3 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
597 || vertex0 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
598 && vertex1 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
599 && vertex2 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
600 && vertex3 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
601 || vertex0 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
602 && vertex1 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
603 && vertex2 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
604 && vertex3 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
605 || vertex0 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
606 && vertex1 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
607 && vertex2 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
608 && vertex3 == t.xelem (1, i) - 1 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
609 |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
610 || vertex0 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
611 && vertex1 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
612 && vertex2 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
613 && vertex3 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
614 || vertex0 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
615 && vertex1 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
616 && vertex2 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
617 && vertex3 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
618 || vertex0 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
619 && vertex1 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
620 && vertex2 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
621 && vertex3 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
622 || vertex0 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
623 && vertex1 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
624 && vertex2 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
625 && vertex3 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
626 || vertex0 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
627 && vertex1 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
628 && vertex2 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
629 && vertex3 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
630 || vertex0 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
631 && vertex1 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
632 && vertex2 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
633 && vertex3 == t.xelem (0, i) - 1 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
634 |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
635 || vertex0 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
636 && vertex1 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
637 && vertex2 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
638 && vertex3 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
639 || vertex0 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
640 && vertex1 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
641 && vertex2 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
642 && vertex3 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
643 || vertex0 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
644 && vertex1 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
645 && vertex2 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
646 && vertex3 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
647 || vertex0 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
648 && vertex1 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
649 && vertex2 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
650 && vertex3 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
651 || vertex0 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
652 && vertex1 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
653 && vertex2 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
654 && vertex3 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
655 || vertex0 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
656 && vertex1 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
657 && vertex2 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
658 && vertex3 == t.xelem (0, i) - 1 |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
659 |
268
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
660 || vertex0 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
661 && vertex1 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
662 && vertex2 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
663 && vertex3 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
664 || vertex0 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
665 && vertex1 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
666 && vertex2 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
667 && vertex3 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
668 || vertex0 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
669 && vertex1 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
670 && vertex2 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
671 && vertex3 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
672 || vertex0 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
673 && vertex1 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
674 && vertex2 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
675 && vertex3 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
676 || vertex0 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
677 && vertex1 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
678 && vertex2 == t.xelem (0, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
679 && vertex3 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
680 || vertex0 == t.xelem (3, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
681 && vertex1 == t.xelem (2, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
682 && vertex2 == t.xelem (1, i) - 1 |
61830a4f9ab9
Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
263
diff
changeset
|
683 && vertex3 == t.xelem (0, i) - 1) |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
684 { |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
685 cell[*f] = t.xelem (4, i); |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
686 break; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
687 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
688 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
689 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
690 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
691 } |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
692 |
263
a61fc34334ca
Use meshfunction to mark subdomains
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
262
diff
changeset
|
693 octave_value retval = new meshfunction ("dx", cell); |
258
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
694 return retval; |
ab35a8b0deef
Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
257
diff
changeset
|
695 } |