From c0e28ebdbc3ae012b4dcafaca663abc81b5fd0ee Mon Sep 17 00:00:00 2001 From: Jason Landini Date: Mon, 21 Oct 2024 19:21:55 -0400 Subject: [PATCH] adding bool to variabe_info for implict equations --- include/model_variables.h | 9 ++++----- src/matrixfree/solveIncrement.cc | 2 +- src/userInputParameters/loadVariableAttributes.cc | 4 ++++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/include/model_variables.h b/include/model_variables.h index 6f3da0c2e..4d78b8af9 100644 --- a/include/model_variables.h +++ b/include/model_variables.h @@ -1,5 +1,3 @@ -// Model Variables Class - #ifndef INCLUDE_MODELVARIABLE_H_ #define INCLUDE_MODELVARIABLE_H_ @@ -33,11 +31,12 @@ class modelResidual struct variable_info { - bool is_scalar; unsigned int global_var_index; dealii::EvaluationFlags::EvaluationFlags evaluation_flags; dealii::EvaluationFlags::EvaluationFlags residual_flags; - bool var_needed; + bool var_needed = false; + bool is_scalar = true; + bool is_implicit = false; }; -#endif /* INCLUDE_MODELVARIABLE_H_ */ +#endif diff --git a/src/matrixfree/solveIncrement.cc b/src/matrixfree/solveIncrement.cc index 1031dae05..37778098f 100644 --- a/src/matrixfree/solveIncrement.cc +++ b/src/matrixfree/solveIncrement.cc @@ -559,7 +559,7 @@ MatrixFreePDE::copy_solution_vectors( for (unsigned int fieldIndex = 0; fieldIndex < fields.size(); fieldIndex++) { // Skip the copy if not tracking prior solutions for the variable index. - if (solutionSet_previous.find(fieldIndex) == solutionSet_previous.end()) + if (!userInputs.varInfoListNonexplicitRHS[fieldIndex].is_implicit) { continue; } diff --git a/src/userInputParameters/loadVariableAttributes.cc b/src/userInputParameters/loadVariableAttributes.cc index 08f6f09f5..e85491088 100644 --- a/src/userInputParameters/loadVariableAttributes.cc +++ b/src/userInputParameters/loadVariableAttributes.cc @@ -96,6 +96,8 @@ userInputParameters::loadVariableAttributes( varInfo.is_scalar = var_type[i] == SCALAR; + varInfo.is_implicit = var_eq_type[i] == IMPLICIT_TIME_DEPENDENT; + varInfoListNonexplicitRHS.push_back(varInfo); } // Load the old variable information for calculating the RHS for nonexplicit equations @@ -156,6 +158,8 @@ userInputParameters::loadVariableAttributes( varInfo.is_scalar = var_type[i] == SCALAR; + varInfo.is_implicit = var_eq_type[i] == IMPLICIT_TIME_DEPENDENT; + varInfoListLHS.push_back(varInfo); } // Load the change variable information for calculating the LHS for nonexplicit