Skip to content

Commit c2ab536

Browse files
Merge pull request #32 from tjhei/lla-skip-non-boundary
Only consider boundary DoFs for the coupling
2 parents f8722c9 + 760a25c commit c2ab536

File tree

4 files changed

+327
-463
lines changed

4 files changed

+327
-463
lines changed

source/mesh_deformation/external_tool_interface.cc

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,18 @@ namespace aspect
176176
cell_data.reference_point_ptrs[cell_index]));
177177

178178
const std::vector< Point< dim >> &support_points = mesh_dof_handler.get_fe().get_unit_support_points();
179-
for (unsigned int i=0; i<unit_points.size(); ++i)
179+
for (unsigned int j=0; j<support_points.size(); ++j)
180180
{
181-
const unsigned int point_index = local_values[n_components*i];
182-
const unsigned int rank = local_values[n_components*i+1];
181+
// skip all DoFs in the interior
182+
const bool is_boundary_dof = boundary_dofs.is_element(cell_dof_indices[j]);
183+
if (!is_boundary_dof)
184+
continue;
183185

184-
for (unsigned int j=0; j<support_points.size(); ++j)
186+
for (unsigned int i=0; i<unit_points.size(); ++i)
185187
{
188+
const unsigned int point_index = local_values[n_components*i];
189+
const unsigned int rank = local_values[n_components*i+1];
190+
186191
const double distance_sq = unit_points[i].distance_square(support_points[j]);
187192
if (distance_sq < squared_distances[cell_dof_indices[j]])
188193
{

tests/mesh_deformation_external_01/screen-output

Lines changed: 18 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
1-
-----------------------------------------------------------------------------
2-
-----------------------------------------------------------------------------
3-
-----------------------------------------------------------------------------
41

52
Loading shared library <./libmesh_deformation_external_01.debug.so>
63

74
initialize()
8-
-----------------------------------------------------------------------------
9-
-----------------------------------------------------------------------------
105
Number of active cells: 64 (on 4 levels)
116
Number of degrees of freedom: 948 (578+81+289)
127

@@ -16,42 +11,24 @@ Number of mesh deformation degrees of freedom: 162
1611
update()
1712
setting points
1813
map_dof_to_eval_point (dof, evaluation_point_index, component):
19-
110 0 0
20-
111 0 1
21-
112 1 0
22-
113 1 1
23-
114 2 0
24-
115 2 1
25-
116 0 0
26-
117 0 1
27-
118 1 0
28-
119 1 1
29-
120 2 0
30-
121 2 1
31-
122 4 0
32-
123 4 1
33-
124 5 0
34-
125 5 1
35-
126 4 0
36-
127 4 1
37-
128 5 0
38-
129 5 1
39-
146 6 0
40-
147 6 1
41-
148 8 0
42-
149 8 1
43-
150 6 0
44-
151 6 1
45-
152 8 0
46-
153 8 1
47-
154 9 0
48-
155 9 1
49-
156 10 0
50-
157 10 1
51-
158 9 0
52-
159 9 1
53-
160 10 0
54-
161 10 1
14+
116 0 0
15+
117 0 1
16+
118 1 0
17+
119 1 1
18+
120 2 0
19+
121 2 1
20+
126 4 0
21+
127 4 1
22+
128 5 0
23+
129 5 1
24+
150 6 0
25+
151 6 1
26+
152 8 0
27+
153 8 1
28+
158 9 0
29+
159 9 1
30+
160 10 0
31+
161 10 1
5532
compute_updated_velocities_at_points()
5633
Solution at evaluation points:
5734
rank 0:
@@ -251,9 +228,4 @@ rank 0:
251228
Termination requested by criterion: end time
252229

253230

254-
+---------------------------------------------+------------+------------+
255-
+---------------------------------+-----------+------------+------------+
256-
+---------------------------------+-----------+------------+------------+
257231

258-
-----------------------------------------------------------------------------
259-
-----------------------------------------------------------------------------

0 commit comments

Comments
 (0)