From 7eebb312bf88951986928c5d309bef5964501295 Mon Sep 17 00:00:00 2001 From: Alex Lindsay Date: Thu, 2 Feb 2017 16:51:19 -0600 Subject: [PATCH] Fix dirac kernels thread and LineMaterialSamplerBase thread. (#8444). --- .../include/vectorpostprocessors/LineMaterialSamplerBase.h | 6 ++++++ framework/src/base/ComputeDiracThread.C | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/framework/include/vectorpostprocessors/LineMaterialSamplerBase.h b/framework/include/vectorpostprocessors/LineMaterialSamplerBase.h index 2353e55ec390..508d0795f276 100644 --- a/framework/include/vectorpostprocessors/LineMaterialSamplerBase.h +++ b/framework/include/vectorpostprocessors/LineMaterialSamplerBase.h @@ -147,6 +147,11 @@ LineMaterialSamplerBase::execute() const RealVectorValue line_unit_vec = line_vec / line_length; std::vector values(_material_properties.size()); + std::set needed_mat_props; + const std::set & mp_deps = this->getMatPropDependencies(); + needed_mat_props.insert(mp_deps.begin(), mp_deps.end()); + _fe_problem.setActiveMaterialProperties(needed_mat_props, _tid); + for (const auto & elem : intersected_elems) { if (elem->processor_id() != processor_id()) @@ -179,6 +184,7 @@ LineMaterialSamplerBase::execute() addSample(_q_point[qp], qp_proj_dist_along_line, values); } } + _fe_problem.clearActiveMaterialProperties(_tid); } template diff --git a/framework/src/base/ComputeDiracThread.C b/framework/src/base/ComputeDiracThread.C index 701f8cd19ab6..952c5d04c22a 100644 --- a/framework/src/base/ComputeDiracThread.C +++ b/framework/src/base/ComputeDiracThread.C @@ -60,7 +60,13 @@ ComputeDiracThread::subdomainChanged() { std::set needed_moose_vars; _dirac_kernels.updateVariableDependency(needed_moose_vars, _tid); + + // Update material dependencies + std::set needed_mat_props; + _dirac_kernels.updateMatPropDependency(needed_mat_props, _tid); + _fe_problem.setActiveElementalMooseVariables(needed_moose_vars, _tid); + _fe_problem.setActiveMaterialProperties(needed_mat_props, _tid); } @@ -155,6 +161,7 @@ void ComputeDiracThread::post() { _fe_problem.clearActiveElementalMooseVariables(_tid); + _fe_problem.clearActiveMaterialProperties(_tid); } void