@@ -76,6 +76,20 @@ function GridWithFEMap(model,orders::AbstractArray; kwargs...)
76
76
GridWithFEMap (grid, Vₕ, Vₕ_scal, xh, nodes_coords, reffes)
77
77
end
78
78
79
+ function _compute_node_coordinates (grid,xh)
80
+ c_dofs = get_fe_dof_basis (grid. fe_sp)
81
+ c_nodes = lazy_map (get_nodes,get_data (c_dofs))
82
+
83
+ c_xh = lazy_map (evaluate,get_data (xh),c_nodes)
84
+ c_scal_ids = get_cell_dof_ids (grid. scal_fe_sp)
85
+
86
+ nodes_coords = grid. node_coords
87
+ Geometry. _cell_vector_to_dof_vector! (nodes_coords,c_scal_ids,c_xh)
88
+
89
+ return nothing
90
+
91
+ end
92
+
79
93
function add_mesh_displacement! (grid:: GridWithFEMap ,dh:: FEFunction )
80
94
81
95
Xh = grid. fe_map
@@ -86,6 +100,8 @@ function add_mesh_displacement!(grid::GridWithFEMap,dh::FEFunction)
86
100
Xh_fv .= Xh_fv .+ get_free_dof_values (dh)
87
101
Xh_dv .= Xh_dv .+ get_dirichlet_dof_values (get_fe_space (dh))
88
102
103
+ _compute_node_coordinates (grid,Xh)
104
+
89
105
end
90
106
91
107
function update_coordinates! (grid:: GridWithFEMap ,dh:: FEFunction )
@@ -98,6 +114,8 @@ function update_coordinates!(grid::GridWithFEMap,dh::FEFunction)
98
114
Xh_fv .= get_free_dof_values (dh)
99
115
Xh_dv .= get_dirichlet_dof_values (get_fe_space (dh))
100
116
117
+ _compute_node_coordinates (grid,Xh)
118
+
101
119
end
102
120
103
121
# Interface
0 commit comments