From 8341ed14ef5dd3229a6f3b20bbaa818f0abbbc4c Mon Sep 17 00:00:00 2001 From: Michael Tupek Date: Fri, 24 Jan 2025 15:46:01 -0800 Subject: [PATCH 1/6] Address complication issue with setFromFieldFunction when a reference. --- src/serac/physics/state/finite_element_state.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/serac/physics/state/finite_element_state.hpp b/src/serac/physics/state/finite_element_state.hpp index ec0551be2a..9c679a95cd 100644 --- a/src/serac/physics/state/finite_element_state.hpp +++ b/src/serac/physics/state/finite_element_state.hpp @@ -16,6 +16,7 @@ #include #include #include +#include #include "mfem.hpp" @@ -73,7 +74,7 @@ decltype(first_argument_helper(&F::operator())) first_argument_helper(F); * Extract type of first argument of a free callable */ template -using first_argument = decltype(first_argument_helper(std::declval())); +using first_argument = std::remove_const()))>::type>::type; /** * @brief Evaluate a function of a tensor with an mfem Vector object From 24e7018d778fedb0b2ebaff8eccc737cb56c4f9f Mon Sep 17 00:00:00 2001 From: Michael Tupek Date: Fri, 24 Jan 2025 15:47:54 -0800 Subject: [PATCH 2/6] Change a test to make sure it compiles as expected. --- src/serac/physics/state/tests/test_finite_element_state.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serac/physics/state/tests/test_finite_element_state.cpp b/src/serac/physics/state/tests/test_finite_element_state.cpp index 1988febca7..a17238bf36 100644 --- a/src/serac/physics/state/tests/test_finite_element_state.cpp +++ b/src/serac/physics/state/tests/test_finite_element_state.cpp @@ -47,7 +47,7 @@ TEST_F(TestFiniteElementState, SetScalarStateFromFieldFunction) // Set state with field function. // Check that lambda captures work with this. double c = 2.0; - auto scalar_field = [c](tensor X) -> double { return c * X[0]; }; + auto scalar_field = [c](const tensor& X) -> double { return c * X[0]; }; scalar_state.setFromFieldFunction(scalar_field); // Get the nodal positions corresponding to state dofs in a grid function From 10646efca5e1c880ac11df7fadb9589d592b92c2 Mon Sep 17 00:00:00 2001 From: Michael Tupek Date: Fri, 24 Jan 2025 20:15:54 -0800 Subject: [PATCH 3/6] typename. --- src/serac/physics/state/finite_element_state.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serac/physics/state/finite_element_state.hpp b/src/serac/physics/state/finite_element_state.hpp index 9c679a95cd..92b37bc95e 100644 --- a/src/serac/physics/state/finite_element_state.hpp +++ b/src/serac/physics/state/finite_element_state.hpp @@ -74,7 +74,7 @@ decltype(first_argument_helper(&F::operator())) first_argument_helper(F); * Extract type of first argument of a free callable */ template -using first_argument = std::remove_const()))>::type>::type; +using first_argument = typename std::remove_const()))>::type>::type; /** * @brief Evaluate a function of a tensor with an mfem Vector object From 4a9ccc6e433a5a9a8072b013a0894fefef78e47d Mon Sep 17 00:00:00 2001 From: Agent Style Date: Fri, 24 Jan 2025 20:26:46 -0800 Subject: [PATCH 4/6] Apply style updates --- src/serac/physics/state/finite_element_state.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/serac/physics/state/finite_element_state.hpp b/src/serac/physics/state/finite_element_state.hpp index 92b37bc95e..6f46219e4f 100644 --- a/src/serac/physics/state/finite_element_state.hpp +++ b/src/serac/physics/state/finite_element_state.hpp @@ -74,7 +74,8 @@ decltype(first_argument_helper(&F::operator())) first_argument_helper(F); * Extract type of first argument of a free callable */ template -using first_argument = typename std::remove_const()))>::type>::type; +using first_argument = typename std::remove_const< + typename std::remove_reference()))>::type>::type; /** * @brief Evaluate a function of a tensor with an mfem Vector object From 836ad67f9f8680c98235143e7c5ba35803223102 Mon Sep 17 00:00:00 2001 From: Michael Tupek Date: Tue, 28 Jan 2025 09:27:56 -0800 Subject: [PATCH 5/6] New line to force tests to run. --- src/serac/physics/state/finite_element_state.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/serac/physics/state/finite_element_state.hpp b/src/serac/physics/state/finite_element_state.hpp index 6f46219e4f..aeb61f2314 100644 --- a/src/serac/physics/state/finite_element_state.hpp +++ b/src/serac/physics/state/finite_element_state.hpp @@ -352,3 +352,4 @@ double computeL2Error(const FiniteElementState& state, mfem::VectorCoefficient& double computeL2Error(const FiniteElementState& state, mfem::Coefficient& exact_solution); } // namespace serac + From 657b5524a658d2a2b4fe8541fdbb09e661d40cf3 Mon Sep 17 00:00:00 2001 From: Agent Style Date: Tue, 28 Jan 2025 10:03:27 -0800 Subject: [PATCH 6/6] Apply style updates --- src/serac/physics/state/finite_element_state.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/serac/physics/state/finite_element_state.hpp b/src/serac/physics/state/finite_element_state.hpp index aeb61f2314..6f46219e4f 100644 --- a/src/serac/physics/state/finite_element_state.hpp +++ b/src/serac/physics/state/finite_element_state.hpp @@ -352,4 +352,3 @@ double computeL2Error(const FiniteElementState& state, mfem::VectorCoefficient& double computeL2Error(const FiniteElementState& state, mfem::Coefficient& exact_solution); } // namespace serac -