Skip to content

Commit ed13096

Browse files
committed
Fixed compilation issues due to make_mass_matrix() in bases_utils.cpp (See issue #73).
1 parent 4d51470 commit ed13096

File tree

6 files changed

+22
-21
lines changed

6 files changed

+22
-21
lines changed

Diff for: apps/maxwell/maxwell.cpp

+9-9
Original file line numberDiff line numberDiff line change
@@ -958,16 +958,16 @@ vector_wave_solver(Mesh<T,2,Storage>& msh, size_t order, const typename Mesh<T,2
958958
auto esol = disk::static_decondensation(lhs, rhs, edofs);
959959
Matrix<T, Dynamic, 1> lsol = esol.segment(0, cb.size());
960960

961-
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb, 1);
962-
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun, 1);
961+
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb);
962+
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun);
963963
Matrix<T, Dynamic, 1> asol = MMe.llt().solve(arhs);
964964

965965
Matrix<T, Dynamic, 1> prj = project_tangent(msh, cl, chdi, sol_fun);
966966

967967
energy_err += (prj-esol).dot(lhs*(prj-esol));
968968
#else
969-
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb, 1);
970-
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun, 1);
969+
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb);
970+
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun);
971971
Matrix<T, Dynamic, 1> asol = MMe.llt().solve(arhs);
972972
Matrix<T, Dynamic, 1> lsol = sol.segment(cell_i*cb.size(), cb.size());
973973
#endif
@@ -1121,21 +1121,21 @@ vector_wave_solver(Mesh<T,3,Storage>& msh, size_t order, const typename Mesh<T,3
11211121
auto MM = make_vector_mass_oper(msh, cl, chdi);
11221122
Matrix<T, Dynamic, Dynamic> lhs = CR.second + alpha*ST - (omega*omega)*MM;
11231123
Matrix<T, Dynamic, 1> rhs = Matrix<T, Dynamic, 1>::Zero(lhs.rows());
1124-
rhs.segment(0, cb.size()) = make_rhs(msh, cl, cb, rhs_fun, 1);
1124+
rhs.segment(0, cb.size()) = make_rhs(msh, cl, cb, rhs_fun);
11251125
auto edofs = assm.get_element_dofs(msh, cl, sol);
11261126
auto esol = disk::static_decondensation(lhs, rhs, edofs);
11271127
Matrix<T, Dynamic, 1> lsol = esol.segment(0, cb.size());
11281128

1129-
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb, 1);
1130-
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun, 1);
1129+
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb);
1130+
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun);
11311131
Matrix<T, Dynamic, 1> asol = MMe.llt().solve(arhs);
11321132

11331133
Matrix<T, Dynamic, 1> prj = project_tangent(msh, cl, chdi, sol_fun);
11341134

11351135
energy_err += (prj-esol).dot(lhs*(prj-esol));
11361136
#else
1137-
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb, 1);
1138-
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun, 1);
1137+
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb);
1138+
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun);
11391139
Matrix<T, Dynamic, 1> asol = MMe.llt().solve(arhs);
11401140
Matrix<T, Dynamic, 1> lsol = sol.segment(cell_i*cb.size(), cb.size());
11411141
#endif

Diff for: apps/maxwell/maxwell_sip_dg.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -358,8 +358,8 @@ run_maxwell_solver(Mesh& msh, size_t degree, const typename Mesh::coordinate_typ
358358
{
359359
auto cb = make_vector_monomial_basis(msh, cl, degree);
360360

361-
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb, 1);
362-
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun, 1);
361+
Matrix<T, Dynamic, Dynamic> MMe = disk::make_mass_matrix(msh, cl, cb);
362+
Matrix<T, Dynamic, 1> arhs = disk::make_rhs(msh, cl, cb, sol_fun);
363363
Matrix<T, Dynamic, 1> asol = MMe.llt().solve(arhs);
364364
Matrix<T, Dynamic, 1> lsol = sol.segment(cell_i*cb.size(), cb.size());
365365

Diff for: apps/tests/curl_reconstruction.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@ struct test_functor_curl_reconstruction<Mesh<T,3,Storage>, mixed>
127127
for (auto& cl : msh)
128128
{
129129
auto CR = disk::curl_reconstruction(msh, cl, hdi);
130-
auto proj = disk::project_tangent(msh, cl, hdi, f,3);
130+
auto proj = disk::project_tangent(msh, cl, hdi, f);
131131
Matrix<T, Dynamic, 1> rf = CR.first * proj;
132132
auto rb = disk::make_vector_monomial_basis(msh, cl, rd);
133133

134-
Matrix<T, Dynamic, Dynamic> mass = disk::make_mass_matrix(msh, cl, rb,3);
135-
Matrix<T, Dynamic, 1> rhs = disk::make_rhs(msh, cl, rb, f,3);
134+
Matrix<T, Dynamic, Dynamic> mass = disk::make_mass_matrix(msh, cl, rb);
135+
Matrix<T, Dynamic, 1> rhs = disk::make_rhs(msh, cl, rb, f);
136136
Matrix<T, Dynamic, 1> exp_reconstr = mass.ldlt().solve(rhs);
137137
Matrix<T, Dynamic, 1> diff = exp_reconstr;
138138
diff.head(3) = exp_reconstr.head(3);

Diff for: apps/tests/curl_reconstruction_pk.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@ struct test_functor_curl_reconstruction<Mesh<T,3,Storage>, mixed>
8080
for (auto& cl : msh)
8181
{
8282
auto CR = disk::make_vector_hho_curl_impl_pk(msh, cl, hdi);
83-
auto proj = disk::project_tangent(msh, cl, hdi, f, 2);
83+
auto proj = disk::project_tangent(msh, cl, hdi, f);
8484
Matrix<T, Dynamic, 1> rf = CR.first * proj;
8585
auto rb = disk::make_vector_monomial_basis(msh, cl, rd);
8686

87-
Matrix<T, Dynamic, Dynamic> mass = disk::make_mass_matrix(msh, cl, rb, 2);
88-
Matrix<T, Dynamic, 1> rhs = disk::make_rhs(msh, cl, rb, sol, 2);
87+
Matrix<T, Dynamic, Dynamic> mass = disk::make_mass_matrix(msh, cl, rb);
88+
Matrix<T, Dynamic, 1> rhs = disk::make_rhs(msh, cl, rb, sol);
8989
Matrix<T, Dynamic, 1> exp_reconstr = mass.ldlt().solve(rhs);
9090
Matrix<T, Dynamic, 1> diff = exp_reconstr - rf;
9191

Diff for: apps/tests/curl_stabilization.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ struct test_functor_curl_stab<Mesh<T,2,Storage>, mixed>
6565
{
6666
auto stab = disk::curl_hdg_stabilization(msh, cl, hdi);
6767

68-
Matrix<scalar_type, Dynamic, 1> proj = disk::project_tangent(msh, cl, hdi, f, 2);
68+
Matrix<scalar_type, Dynamic, 1> proj = disk::project_tangent(msh, cl, hdi, f);
6969

7070
error += proj.dot(stab * proj);
7171
}
@@ -110,7 +110,7 @@ struct test_functor_curl_stab<Mesh<T,3,Storage>, mixed>
110110
{
111111
auto stab = disk::curl_hdg_stabilization(msh, cl, hdi);
112112

113-
Matrix<scalar_type, Dynamic, 1> proj = disk::project_tangent(msh, cl, hdi, f, 2);
113+
Matrix<scalar_type, Dynamic, 1> proj = disk::project_tangent(msh, cl, hdi, f);
114114

115115
error += proj.dot(stab * proj);
116116
}

Diff for: core/bases/bases_utils.hpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,10 @@ make_mass_matrix(const Mesh& msh, const Element& elem, const Basis& basis, size_
220220
return ret;
221221
}
222222

223-
/*
223+
/* We have a problem here: this definition could be ambiguous with the previous
224+
* one. */
224225
template<typename Mesh, typename Element, typename Basis, typename MaterialField>
226+
[[deprecated("DiSk++ issue: this declaration is ambiguous, fix is needed")]]
225227
Matrix<typename Basis::scalar_type, Dynamic, Dynamic>
226228
make_mass_matrix(const Mesh& msh, const Element& elem, const Basis& basis, const MaterialField& material_tensor, size_t di = 0)
227229
{
@@ -245,7 +247,6 @@ make_mass_matrix(const Mesh& msh, const Element& elem, const Basis& basis, const
245247
return ret;
246248
}
247249

248-
*/
249250
template<typename Mesh, typename Element, typename Basis>
250251
Matrix<typename Basis::scalar_type, Dynamic, Dynamic>
251252
make_stiffness_matrix(const Mesh& msh, const Element& elem, const Basis& basis)

0 commit comments

Comments
 (0)