diff --git a/framework/include/loops/ThreadedElementLoopBase.h b/framework/include/loops/ThreadedElementLoopBase.h index 07d2eaade18e..bfecd634ff30 100644 --- a/framework/include/loops/ThreadedElementLoopBase.h +++ b/framework/include/loops/ThreadedElementLoopBase.h @@ -255,8 +255,8 @@ ThreadedElementLoopBase::operator()(const RangeType & range, bool byp onElement(elem); - if (elem->subdomain_id() == Moose::INTERNAL_SIDE_LOWERD_ID || - elem->subdomain_id() == Moose::BOUNDARY_SIDE_LOWERD_ID) + if (_mesh.interiorLowerDBlocks().count(elem->subdomain_id()) > 0 || + _mesh.boundaryLowerDBlocks().count(elem->subdomain_id()) > 0) { postElement(elem); continue; diff --git a/framework/include/mesh/MooseMesh.h b/framework/include/mesh/MooseMesh.h index 09cc6554bb73..74f806a76c7b 100644 --- a/framework/include/mesh/MooseMesh.h +++ b/framework/include/mesh/MooseMesh.h @@ -1365,6 +1365,15 @@ class MooseMesh : public MooseObject, public Restartable, public PerfGraphInterf */ bool hasLowerD() const { return _has_lower_d; } + /** + * @return The set of lower-dimensional blocks for interior sides + */ + const std::set & interiorLowerDBlocks() const { return _lower_d_interior_blocks; } + /** + * @return The set of lower-dimensional blocks for boundary sides + */ + const std::set & boundaryLowerDBlocks() const { return _lower_d_boundary_blocks; } + protected: /// Deprecated (DO NOT USE) std::vector> _ghosting_functors; @@ -1752,6 +1761,10 @@ class MooseMesh : public MooseObject, public Restartable, public PerfGraphInterf /// Holds a map from neighbor subomdain ids to the boundary ids that are attached to it std::unordered_map> _neighbor_subdomain_boundary_ids; + /// Mesh blocks for interior lower-d elements in different types + std::set _lower_d_interior_blocks; + /// Mesh blocks for boundary lower-d elements in different types + std::set _lower_d_boundary_blocks; /// Holds a map from a high-order element side to its corresponding lower-d element std::unordered_map, const Elem *> _higher_d_elem_side_to_lower_d_elem; diff --git a/framework/include/utils/MooseTypes.h b/framework/include/utils/MooseTypes.h index 939f3e4422cd..76346e4fd4fb 100644 --- a/framework/include/utils/MooseTypes.h +++ b/framework/include/utils/MooseTypes.h @@ -659,8 +659,6 @@ namespace Moose { extern const processor_id_type INVALID_PROCESSOR_ID; extern const SubdomainID ANY_BLOCK_ID; -extern const SubdomainID INTERNAL_SIDE_LOWERD_ID; -extern const SubdomainID BOUNDARY_SIDE_LOWERD_ID; extern const SubdomainID INVALID_BLOCK_ID; extern const BoundaryID ANY_BOUNDARY_ID; extern const BoundaryID INVALID_BOUNDARY_ID; diff --git a/framework/src/actions/SetupMeshCompleteAction.C b/framework/src/actions/SetupMeshCompleteAction.C index b4995badf9f2..15513844a9db 100644 --- a/framework/src/actions/SetupMeshCompleteAction.C +++ b/framework/src/actions/SetupMeshCompleteAction.C @@ -71,8 +71,7 @@ SetupMeshCompleteAction::act() if (_mesh->uniformRefineLevel()) { - if (_mesh->meshSubdomains().count(Moose::INTERNAL_SIDE_LOWERD_ID) || - _mesh->meshSubdomains().count(Moose::BOUNDARY_SIDE_LOWERD_ID)) + if (_mesh->interiorLowerDBlocks().size() > 0 || _mesh->boundaryLowerDBlocks().size() > 0) mooseError("HFEM does not support mesh uniform refinement currently."); Adaptivity::uniformRefine(_mesh.get()); diff --git a/framework/src/bcs/ArrayHFEMDirichletBC.C b/framework/src/bcs/ArrayHFEMDirichletBC.C index cb03dc7ee64f..12914f86f4bf 100644 --- a/framework/src/bcs/ArrayHFEMDirichletBC.C +++ b/framework/src/bcs/ArrayHFEMDirichletBC.C @@ -34,10 +34,11 @@ ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(const InputParameters & parameters) if (_uhat_var) { - if (!_uhat_var->activeSubdomains().count(Moose::BOUNDARY_SIDE_LOWERD_ID)) - paramError("uhat", - "Must be defined on BOUNDARY_SIDE_LOWERD_SUBDOMAIN subdomain that is added by " - "Mesh/build_all_side_lowerd_mesh=true"); + for (const auto & id : _uhat_var->activeSubdomains()) + if (_mesh.boundaryLowerDBlocks().count(id) == 0) + paramError("uhat", + "Must be defined on lower-dimensional boundary subdomain that is added by " + "Mesh/build_all_side_lowerd_mesh=true"); if (_uhat_var->count() != _count) paramError("uhat", diff --git a/framework/src/bcs/ArrayLowerDIntegratedBC.C b/framework/src/bcs/ArrayLowerDIntegratedBC.C index 456a9af6d817..eaf1dd1250b5 100644 --- a/framework/src/bcs/ArrayLowerDIntegratedBC.C +++ b/framework/src/bcs/ArrayLowerDIntegratedBC.C @@ -35,15 +35,15 @@ ArrayLowerDIntegratedBC::ArrayLowerDIntegratedBC(const InputParameters & paramet _work_vector(_count) { const auto & lower_domains = _lowerd_var.activeSubdomains(); - if (!lower_domains.count(Moose::BOUNDARY_SIDE_LOWERD_ID) && lower_domains.size() != 1) - paramError( - "lowerd_variable", - "Must be only defined on the subdomain BOUNDARY_SIDE_LOWERD_SUBDOMAIN subdomain that is " - "added by Mesh/build_all_side_lowerd_mesh=true"); - - if (_var.activeSubdomains().count(Moose::BOUNDARY_SIDE_LOWERD_ID)) - paramError("variable", - "Must not be defined on the subdomain BOUNDARY_SIDE_LOWERD_SUBDOMAIN subdomain"); + for (const auto & id : _mesh.boundaryLowerDBlocks()) + if (lower_domains.count(id) == 0) + paramError("lowerd_variable", + "Must be defined on the boundary lower-dimensional subdomain that is " + "added by Mesh/build_all_side_lowerd_mesh=true"); + + for (const auto & id : _var.activeSubdomains()) + if (_mesh.boundaryLowerDBlocks().count(id) > 0) + paramError("variable", "Must not be defined on the boundary lower-dimensional subdomain"); if (_lowerd_var.count() != _count) paramError("lowerd_variable", diff --git a/framework/src/bcs/HFEMDirichletBC.C b/framework/src/bcs/HFEMDirichletBC.C index 00d3beb37c6a..cd7c70009df6 100644 --- a/framework/src/bcs/HFEMDirichletBC.C +++ b/framework/src/bcs/HFEMDirichletBC.C @@ -29,10 +29,11 @@ HFEMDirichletBC::HFEMDirichletBC(const InputParameters & parameters) { if (_uhat_var) { - if (!_uhat_var->activeSubdomains().count(Moose::BOUNDARY_SIDE_LOWERD_ID)) - paramError("uhat", - "Must be defined on BOUNDARY_SIDE_LOWERD_SUBDOMAIN subdomain that is added by " - "Mesh/build_all_side_lowerd_mesh=true"); + for (const auto & id : _uhat_var->activeSubdomains()) + if (_mesh.boundaryLowerDBlocks().count(id) == 0) + paramError("uhat", + "Must be defined on lower-dimensional boundary subdomain that is added by " + "Mesh/build_all_side_lowerd_mesh=true"); if (isParamValid("value")) paramError("uhat", "'uhat' and 'value' can not be both provided"); diff --git a/framework/src/bcs/LowerDIntegratedBC.C b/framework/src/bcs/LowerDIntegratedBC.C index 0d2fdf4db83e..eafaf67d8385 100644 --- a/framework/src/bcs/LowerDIntegratedBC.C +++ b/framework/src/bcs/LowerDIntegratedBC.C @@ -34,15 +34,15 @@ LowerDIntegratedBC::LowerDIntegratedBC(const InputParameters & parameters) _test_lambda(_lowerd_var.phiLower()) { const auto & lower_domains = _lowerd_var.activeSubdomains(); - if (!lower_domains.count(Moose::BOUNDARY_SIDE_LOWERD_ID) && lower_domains.size() != 1) - paramError( - "lowerd_variable", - "Must be only defined on the subdomain BOUNDARY_SIDE_LOWERD_SUBDOMAIN subdomain that is " - "added by Mesh/build_all_side_lowerd_mesh=true"); - - if (_var.activeSubdomains().count(Moose::BOUNDARY_SIDE_LOWERD_ID)) - paramError("variable", - "Must not be defined on the subdomain INTERNAL_SIDE_LOWERD_SUBDOMAIN subdomain"); + for (const auto & id : _mesh.boundaryLowerDBlocks()) + if (lower_domains.count(id) == 0) + paramError("lowerd_variable", + "Must be defined on the boundary lower-dimensional subdomain that is " + "added by Mesh/build_all_side_lowerd_mesh=true"); + + for (const auto & id : _var.activeSubdomains()) + if (_mesh.boundaryLowerDBlocks().count(id) > 0) + paramError("variable", "Must not be defined on the boundary lower-dimensional subdomain"); // Note: the above two conditions also ensure that the variable and lower-d variable are // different. diff --git a/framework/src/dgkernels/ArrayDGLowerDKernel.C b/framework/src/dgkernels/ArrayDGLowerDKernel.C index 68499733cc54..32ed086e7b56 100644 --- a/framework/src/dgkernels/ArrayDGLowerDKernel.C +++ b/framework/src/dgkernels/ArrayDGLowerDKernel.C @@ -42,15 +42,15 @@ ArrayDGLowerDKernel::ArrayDGLowerDKernel(const InputParameters & parameters) _work_vector(_count) { const auto & lower_domains = _lowerd_var.activeSubdomains(); - if (!lower_domains.count(Moose::INTERNAL_SIDE_LOWERD_ID) && lower_domains.size() != 1) - paramError( - "lowerd_variable", - "Must be only defined on the subdomain INTERNAL_SIDE_LOWERD_SUBDOMAIN subdomain that is " - "added by Mesh/build_all_side_lowerd_mesh=true"); - - if (_var.activeSubdomains().count(Moose::INTERNAL_SIDE_LOWERD_ID)) - paramError("variable", - "Must not be defined on the subdomain INTERNAL_SIDE_LOWERD_SUBDOMAIN subdomain"); + for (const auto & id : _mesh.interiorLowerDBlocks()) + if (lower_domains.count(id) == 0) + paramError("lowerd_variable", + "Must be defined on the interior lower-dimensional subdomain that is " + "added by Mesh/build_all_side_lowerd_mesh=true"); + + for (const auto & id : _var.activeSubdomains()) + if (_mesh.interiorLowerDBlocks().count(id) > 0) + paramError("variable", "Must not be defined on the interior lower-dimensional subdomain"); if (_lowerd_var.count() != _count) paramError("lowerd_variable", diff --git a/framework/src/dgkernels/DGLowerDKernel.C b/framework/src/dgkernels/DGLowerDKernel.C index ea28a581620e..dd2a3c21f95e 100644 --- a/framework/src/dgkernels/DGLowerDKernel.C +++ b/framework/src/dgkernels/DGLowerDKernel.C @@ -41,15 +41,15 @@ DGLowerDKernel::DGLowerDKernel(const InputParameters & parameters) _test_lambda(_lowerd_var.phiLower()) { const auto & lower_domains = _lowerd_var.activeSubdomains(); - if (!lower_domains.count(Moose::INTERNAL_SIDE_LOWERD_ID) && lower_domains.size() != 1) - paramError( - "lowerd_variable", - "Must be only defined on the subdomain INTERNAL_SIDE_LOWERD_SUBDOMAIN subdomain that is " - "added by Mesh/build_all_side_lowerd_mesh=true"); - - if (_var.activeSubdomains().count(Moose::INTERNAL_SIDE_LOWERD_ID)) - paramError("variable", - "Must not be defined on the subdomain INTERNAL_SIDE_LOWERD_SUBDOMAIN subdomain"); + for (const auto & id : _mesh.interiorLowerDBlocks()) + if (lower_domains.count(id) == 0) + paramError("lowerd_variable", + "Must be defined on the interior lower-dimensional subdomain that is " + "added by Mesh/build_all_side_lowerd_mesh=true"); + + for (const auto & id : _var.activeSubdomains()) + if (_mesh.interiorLowerDBlocks().count(id) > 0) + paramError("variable", "Must not be defined on the interior lower-dimensional subdomain"); // Note: the above two conditions also ensure that the variable and lower-d variable are // different. diff --git a/framework/src/interfaces/BlockRestrictable.C b/framework/src/interfaces/BlockRestrictable.C index b26bc57e3eeb..4dc510140c1b 100644 --- a/framework/src/interfaces/BlockRestrictable.C +++ b/framework/src/interfaces/BlockRestrictable.C @@ -338,8 +338,9 @@ BlockRestrictable::checkVariable(const MooseVariableFieldBase & variable) const { // a variable defined on all internal sides does not need this check because // it can be coupled with other variables in DG kernels - if (variable.activeSubdomains().count(Moose::INTERNAL_SIDE_LOWERD_ID) > 0) - return; + for (const auto & id : variable.activeSubdomains()) + if (_blk_mesh->interiorLowerDBlocks().count(id) > 0) + return; if (!isBlockSubset(variable.activeSubdomains())) { diff --git a/framework/src/loops/ComputeFullJacobianThread.C b/framework/src/loops/ComputeFullJacobianThread.C index a45dd4eb622b..b1e01332dcc1 100644 --- a/framework/src/loops/ComputeFullJacobianThread.C +++ b/framework/src/loops/ComputeFullJacobianThread.C @@ -300,7 +300,7 @@ ComputeFullJacobianThread::computeOnInternalFace(const Elem * neighbor) if (dg->variable().number() == ivar && dg->isImplicit() && dg->hasBlocks(neighbor->subdomain_id()) && (jvariable.activeOnSubdomain(_subdomain) || - jvariable.activeOnSubdomain(Moose::INTERNAL_SIDE_LOWERD_ID))) + jvariable.activeOnSubdomains(_fe_problem.mesh().interiorLowerDBlocks()))) { dg->prepareShapes(jvar); dg->prepareNeighborShapes(jvar); diff --git a/framework/src/mesh/MooseMesh.C b/framework/src/mesh/MooseMesh.C index bc0ebdff5404..5907c3c47b09 100644 --- a/framework/src/mesh/MooseMesh.C +++ b/framework/src/mesh/MooseMesh.C @@ -60,6 +60,7 @@ #include "libmesh/default_coupling.h" #include "libmesh/ghost_point_neighbors.h" #include "libmesh/fe_type.h" +#include "libmesh/enum_to_string.h" static const int GRAIN_SIZE = 1; // the grain_size does not have much influence on our execution speed @@ -297,6 +298,8 @@ MooseMesh::MooseMesh(const MooseMesh & other_mesh) _patch_update_strategy(other_mesh._patch_update_strategy), _regular_orthogonal_mesh(false), _is_split(other_mesh._is_split), + _lower_d_interior_blocks(other_mesh._lower_d_interior_blocks), + _lower_d_boundary_blocks(other_mesh._lower_d_boundary_blocks), _has_lower_d(other_mesh._has_lower_d), _allow_recovery(other_mesh._allow_recovery), _construct_node_list_from_side_list(other_mesh._construct_node_list_from_side_list), @@ -632,19 +635,65 @@ MooseMesh::buildLowerDMesh() // remove existing lower-d element first std::set deleteable_elems; for (auto & elem : mesh.element_ptr_range()) - if (elem->subdomain_id() == Moose::INTERNAL_SIDE_LOWERD_ID || - elem->subdomain_id() == Moose::BOUNDARY_SIDE_LOWERD_ID) + if (_lower_d_interior_blocks.count(elem->subdomain_id()) || + _lower_d_boundary_blocks.count(elem->subdomain_id())) deleteable_elems.insert(elem); else if (elem->n_sides() > max_n_sides) max_n_sides = elem->n_sides(); for (auto & elem : deleteable_elems) mesh.delete_elem(elem); + _lower_d_interior_blocks.clear(); + _lower_d_boundary_blocks.clear(); mesh.comm().max(max_n_sides); deleteable_elems.clear(); + // get all side types + std::set interior_side_types; + std::set boundary_side_types; + for (const auto & elem : mesh.active_element_ptr_range()) + for (const auto side : elem->side_index_range()) + { + Elem * neig = elem->neighbor_ptr(side); + std::unique_ptr side_elem(elem->build_side_ptr(side)); + if (neig) + interior_side_types.insert(side_elem->type()); + else + boundary_side_types.insert(side_elem->type()); + } + mesh.comm().set_union(interior_side_types); + mesh.comm().set_union(boundary_side_types); + + // assign block ids for different side types + std::map interior_block_ids; + std::map boundary_block_ids; + // we assume this id is not used by the mesh + auto id = libMesh::Elem::invalid_subdomain_id - 2; + for (const auto & tpid : interior_side_types) + { + const auto type = ElemType(tpid); + mesh.subdomain_name(id) = "INTERNAL_SIDE_LOWERD_SUBDOMAIN_" + Utility::enum_to_string(type); + interior_block_ids[type] = id; + _lower_d_interior_blocks.insert(id); + if (_mesh_subdomains.count(id) > 0) + mooseError("Trying to add a mesh block with id ", id, " that has existed in the mesh"); + _mesh_subdomains.insert(id); + --id; + } + for (const auto & tpid : boundary_side_types) + { + const auto type = ElemType(tpid); + mesh.subdomain_name(id) = "BOUNDARY_SIDE_LOWERD_SUBDOMAIN_" + Utility::enum_to_string(type); + boundary_block_ids[type] = id; + _lower_d_boundary_blocks.insert(id); + if (_mesh_subdomains.count(id) > 0) + mooseError("Trying to add a mesh block with id ", id, " that has existed in the mesh"); + _mesh_subdomains.insert(id); + --id; + } + dof_id_type max_elem_id = mesh.max_elem_id(); unique_id_type max_unique_id = mesh.parallel_max_unique_id(); @@ -681,9 +730,9 @@ MooseMesh::buildLowerDMesh() // Add subdomain ID if (neig) - side_elem->subdomain_id() = Moose::INTERNAL_SIDE_LOWERD_ID; + side_elem->subdomain_id() = interior_block_ids.at(side_elem->type()); else - side_elem->subdomain_id() = Moose::BOUNDARY_SIDE_LOWERD_ID; + side_elem->subdomain_id() = boundary_block_ids.at(side_elem->type()); // set ids consistently across processors (these ids will be temporary) side_elem->set_id(max_elem_id + elem->id() * max_n_sides + side); @@ -713,11 +762,6 @@ MooseMesh::buildLowerDMesh() for (auto & elem : side_elems) mesh.add_elem(elem); - _mesh_subdomains.insert(Moose::INTERNAL_SIDE_LOWERD_ID); - mesh.subdomain_name(Moose::INTERNAL_SIDE_LOWERD_ID) = "INTERNAL_SIDE_LOWERD_SUBDOMAIN"; - _mesh_subdomains.insert(Moose::BOUNDARY_SIDE_LOWERD_ID); - mesh.subdomain_name(Moose::BOUNDARY_SIDE_LOWERD_ID) = "BOUNDARY_SIDE_LOWERD_SUBDOMAIN"; - // we do all the stuff in prepare_for_use such as renumber_nodes_and_elements(), // update_parallel_id_counts(), cache_elem_dims(), etc. except partitioning here. const bool skip_partitioning_old = mesh.skip_partitioning(); diff --git a/framework/src/problems/DisplacedProblem.C b/framework/src/problems/DisplacedProblem.C index 900f690defe9..a62b9af62f93 100644 --- a/framework/src/problems/DisplacedProblem.C +++ b/framework/src/problems/DisplacedProblem.C @@ -875,7 +875,7 @@ DisplacedProblem::reinitElemNeighborAndLowerD(const Elem * elem, reinitNeighbor(elem, side, tid); const Elem * lower_d_elem = _mesh.getLowerDElem(elem, side); - if (lower_d_elem && lower_d_elem->subdomain_id() == Moose::INTERNAL_SIDE_LOWERD_ID) + if (lower_d_elem && _mesh.interiorLowerDBlocks().count(lower_d_elem->subdomain_id()) > 0) reinitLowerDElem(lower_d_elem, tid); else { @@ -884,7 +884,7 @@ DisplacedProblem::reinitElemNeighborAndLowerD(const Elem * elem, auto & neighbor_side = _assembly[tid][currentNlSysNum()]->neighborSide(); const Elem * lower_d_elem_neighbor = _mesh.getLowerDElem(neighbor, neighbor_side); if (lower_d_elem_neighbor && - lower_d_elem_neighbor->subdomain_id() == Moose::INTERNAL_SIDE_LOWERD_ID) + _mesh.interiorLowerDBlocks().count(lower_d_elem_neighbor->subdomain_id()) > 0) { auto qps = _assembly[tid][currentNlSysNum()]->qPointsFaceNeighbor().stdVector(); std::vector reference_points; diff --git a/framework/src/problems/FEProblemBase.C b/framework/src/problems/FEProblemBase.C index 31bbac8f9827..a48b03abc23d 100644 --- a/framework/src/problems/FEProblemBase.C +++ b/framework/src/problems/FEProblemBase.C @@ -2253,7 +2253,7 @@ FEProblemBase::reinitElemNeighborAndLowerD(const Elem * elem, reinitNeighbor(elem, side, tid); const Elem * lower_d_elem = _mesh.getLowerDElem(elem, side); - if (lower_d_elem && lower_d_elem->subdomain_id() == Moose::INTERNAL_SIDE_LOWERD_ID) + if (lower_d_elem && _mesh.interiorLowerDBlocks().count(lower_d_elem->subdomain_id()) > 0) reinitLowerDElem(lower_d_elem, tid); else { @@ -2262,7 +2262,7 @@ FEProblemBase::reinitElemNeighborAndLowerD(const Elem * elem, auto & neighbor_side = _assembly[tid][0]->neighborSide(); const Elem * lower_d_elem_neighbor = _mesh.getLowerDElem(neighbor, neighbor_side); if (lower_d_elem_neighbor && - lower_d_elem_neighbor->subdomain_id() == Moose::INTERNAL_SIDE_LOWERD_ID) + _mesh.interiorLowerDBlocks().count(lower_d_elem_neighbor->subdomain_id()) > 0) { auto qps = _assembly[tid][0]->qPointsFaceNeighbor().stdVector(); std::vector reference_points; @@ -7711,8 +7711,7 @@ FEProblemBase::initialAdaptMesh() _cycles_completed = 0; if (n) { - if (_mesh.meshSubdomains().count(Moose::INTERNAL_SIDE_LOWERD_ID) || - _mesh.meshSubdomains().count(Moose::BOUNDARY_SIDE_LOWERD_ID)) + if (_mesh.interiorLowerDBlocks().size() > 0 || _mesh.boundaryLowerDBlocks().size() > 0) mooseError("HFEM does not support mesh adaptivity currently."); TIME_SECTION("initialAdaptMesh", 2, "Performing Initial Adaptivity"); @@ -7757,8 +7756,7 @@ FEProblemBase::adaptMesh() for (unsigned int i = 0; i < cycles_per_step; ++i) { - if (_mesh.meshSubdomains().count(Moose::INTERNAL_SIDE_LOWERD_ID) || - _mesh.meshSubdomains().count(Moose::BOUNDARY_SIDE_LOWERD_ID)) + if (_mesh.interiorLowerDBlocks().size() > 0 || _mesh.boundaryLowerDBlocks().size() > 0) mooseError("HFEM does not support mesh adaptivity currently."); // Markers were already computed once by Executioner diff --git a/framework/src/systems/NonlinearSystemBase.C b/framework/src/systems/NonlinearSystemBase.C index f380e541d37b..8ca2a1160629 100644 --- a/framework/src/systems/NonlinearSystemBase.C +++ b/framework/src/systems/NonlinearSystemBase.C @@ -3640,8 +3640,10 @@ NonlinearSystemBase::checkKernelCoverage(const std::set & mesh_subd std::inserter(difference, difference.end())); // there supposed to be no kernels on this lower-dimensional subdomain - difference.erase(Moose::INTERNAL_SIDE_LOWERD_ID); - difference.erase(Moose::BOUNDARY_SIDE_LOWERD_ID); + for (const auto & id : _mesh.interiorLowerDBlocks()) + difference.erase(id); + for (const auto & id : _mesh.boundaryLowerDBlocks()) + difference.erase(id); if (!difference.empty()) { @@ -3681,8 +3683,9 @@ NonlinearSystemBase::checkKernelCoverage(const std::set & mesh_subd for (auto & var_name : vars) { auto blks = getSubdomainsForVar(var_name); - if (blks.count(Moose::INTERNAL_SIDE_LOWERD_ID) || blks.count(Moose::BOUNDARY_SIDE_LOWERD_ID)) - difference.erase(var_name); + for (const auto & id : blks) + if (_mesh.interiorLowerDBlocks().count(id) > 0 || _mesh.boundaryLowerDBlocks().count(id) > 0) + difference.erase(var_name); } if (!difference.empty()) diff --git a/framework/src/utils/MooseTypes.C b/framework/src/utils/MooseTypes.C index cf85561965fc..284ac4189ed9 100644 --- a/framework/src/utils/MooseTypes.C +++ b/framework/src/utils/MooseTypes.C @@ -17,8 +17,6 @@ namespace Moose { const processor_id_type INVALID_PROCESSOR_ID = libMesh::DofObject::invalid_processor_id; const SubdomainID ANY_BLOCK_ID = libMesh::Elem::invalid_subdomain_id - 1; -const SubdomainID INTERNAL_SIDE_LOWERD_ID = libMesh::Elem::invalid_subdomain_id - 2; -const SubdomainID BOUNDARY_SIDE_LOWERD_ID = libMesh::Elem::invalid_subdomain_id - 3; const SubdomainID INVALID_BLOCK_ID = libMesh::Elem::invalid_subdomain_id; const BoundaryID ANY_BOUNDARY_ID = static_cast(-1); const BoundaryID INVALID_BOUNDARY_ID = libMesh::BoundaryInfo::invalid_id; diff --git a/test/tests/kernels/hfem/3d-lower-d-volumes.i b/test/tests/kernels/hfem/3d-lower-d-volumes.i index 1d9907212c64..2f4374cb1f22 100644 --- a/test/tests/kernels/hfem/3d-lower-d-volumes.i +++ b/test/tests/kernels/hfem/3d-lower-d-volumes.i @@ -18,17 +18,17 @@ [uhat] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_QUAD4 [] [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_QUAD4 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_QUAD4 [] [] @@ -59,12 +59,12 @@ type = Reaction variable = uhat rate = '1' - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_QUAD4 [] [uhat_coupled] type = CoupledForce variable = uhat - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_QUAD4 v = lambdab coef = '1' [] @@ -99,7 +99,7 @@ [lambdanorm] type = ElementL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_QUAD4 [] [] diff --git a/test/tests/kernels/hfem/3d-prism.i b/test/tests/kernels/hfem/3d-prism.i new file mode 100644 index 000000000000..45572bd2c5b0 --- /dev/null +++ b/test/tests/kernels/hfem/3d-prism.i @@ -0,0 +1,121 @@ +[Mesh] + [square] + type = GeneratedMeshGenerator + nx = 3 + ny = 3 + nz = 3 + dim = 3 + elem_type = PRISM6 + [] + build_all_side_lowerd_mesh = true +[] + +[Variables] + [u] + order = THIRD + family = MONOMIAL + block = 0 + [] + [uhat] + order = CONSTANT + family = MONOMIAL + block = 'BOUNDARY_SIDE_LOWERD_SUBDOMAIN_QUAD4 BOUNDARY_SIDE_LOWERD_SUBDOMAIN_TRI3' + [] + [lambda] + order = CONSTANT + family = MONOMIAL + block = 'INTERNAL_SIDE_LOWERD_SUBDOMAIN_QUAD4 INTERNAL_SIDE_LOWERD_SUBDOMAIN_TRI3' + [] + [lambdab] + order = CONSTANT + family = MONOMIAL + block = 'BOUNDARY_SIDE_LOWERD_SUBDOMAIN_QUAD4 BOUNDARY_SIDE_LOWERD_SUBDOMAIN_TRI3' + [] +[] + +[AuxVariables] + [v] + order = CONSTANT + family = MONOMIAL + block = 0 + initial_condition = '1' + [] +[] + +[Kernels] + [diff] + type = MatDiffusion + variable = u + diffusivity = '1' + block = 0 + [] + [source] + type = CoupledForce + variable = u + v = v + coef = '1' + block = 0 + [] + [reaction] + type = Reaction + variable = uhat + rate = '1' + block = 'BOUNDARY_SIDE_LOWERD_SUBDOMAIN_QUAD4 BOUNDARY_SIDE_LOWERD_SUBDOMAIN_TRI3' + [] + [uhat_coupled] + type = CoupledForce + variable = uhat + block = 'BOUNDARY_SIDE_LOWERD_SUBDOMAIN_QUAD4 BOUNDARY_SIDE_LOWERD_SUBDOMAIN_TRI3' + v = lambdab + coef = '1' + [] +[] + +[DGKernels] + [surface] + type = TestLowerDVolumes + variable = u + lowerd_variable = lambda + l = 1 + n = 3 + [] +[] + +[BCs] + [all] + type = HFEMDirichletBC + boundary = 'left right top bottom back front' + variable = u + lowerd_variable = lambdab + uhat = uhat + [] +[] + +[Postprocessors] + [intu] + type = ElementIntegralVariablePostprocessor + variable = u + block = 0 + [] + [lambdanorm] + type = ElementL2Norm + variable = lambda + block = 'INTERNAL_SIDE_LOWERD_SUBDOMAIN_QUAD4 INTERNAL_SIDE_LOWERD_SUBDOMAIN_TRI3' + [] +[] + +[Executioner] + type = Steady + solve_type = 'NEWTON' + petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_mat_solver_type' + petsc_options_value = 'lu basic mumps' +[] + +[Outputs] + [out] + # we hide lambda because it may flip sign due to element + # renumbering with distributed mesh + type = Exodus + hide = lambda + [] +[] diff --git a/test/tests/kernels/hfem/array_dirichlet.i b/test/tests/kernels/hfem/array_dirichlet.i index d17f7d7df70e..89c2d9257772 100644 --- a/test/tests/kernels/hfem/array_dirichlet.i +++ b/test/tests/kernels/hfem/array_dirichlet.i @@ -18,13 +18,13 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -88,7 +88,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/array_dirichlet_pjfnk.i b/test/tests/kernels/hfem/array_dirichlet_pjfnk.i index 76f204434037..d4f5b1005afd 100644 --- a/test/tests/kernels/hfem/array_dirichlet_pjfnk.i +++ b/test/tests/kernels/hfem/array_dirichlet_pjfnk.i @@ -18,13 +18,13 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -101,7 +101,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/array_dirichlet_transform.i b/test/tests/kernels/hfem/array_dirichlet_transform.i index 5695e6534e2a..23e8d132c140 100644 --- a/test/tests/kernels/hfem/array_dirichlet_transform.i +++ b/test/tests/kernels/hfem/array_dirichlet_transform.i @@ -18,13 +18,13 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -88,7 +88,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/array_dirichlet_transform_bc.i b/test/tests/kernels/hfem/array_dirichlet_transform_bc.i index bbb71d0bb500..4cd6e1b0f7bb 100644 --- a/test/tests/kernels/hfem/array_dirichlet_transform_bc.i +++ b/test/tests/kernels/hfem/array_dirichlet_transform_bc.i @@ -18,13 +18,13 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -88,7 +88,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/array_neumann.i b/test/tests/kernels/hfem/array_neumann.i index b8663bdcb179..89898d779ab9 100644 --- a/test/tests/kernels/hfem/array_neumann.i +++ b/test/tests/kernels/hfem/array_neumann.i @@ -18,7 +18,7 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -92,7 +92,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/array_robin.i b/test/tests/kernels/hfem/array_robin.i index 4d396b4b4dab..95fa6b173e9a 100644 --- a/test/tests/kernels/hfem/array_robin.i +++ b/test/tests/kernels/hfem/array_robin.i @@ -18,7 +18,7 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -81,7 +81,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/dirichlet.i b/test/tests/kernels/hfem/dirichlet.i index c0d3f947c56d..93399242562b 100644 --- a/test/tests/kernels/hfem/dirichlet.i +++ b/test/tests/kernels/hfem/dirichlet.i @@ -17,17 +17,17 @@ [uhat] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] @@ -58,12 +58,12 @@ type = Reaction variable = uhat rate = '1' - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [uhat_coupled] type = CoupledForce variable = uhat - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 v = lambdab coef = '1' [] @@ -96,7 +96,7 @@ [lambdanorm] type = ElementL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/gold/3d-prism_out.e b/test/tests/kernels/hfem/gold/3d-prism_out.e new file mode 100644 index 000000000000..52d3cb9f15f1 Binary files /dev/null and b/test/tests/kernels/hfem/gold/3d-prism_out.e differ diff --git a/test/tests/kernels/hfem/lower-d-volumes.i b/test/tests/kernels/hfem/lower-d-volumes.i index 8432293270e1..d9cf0391212e 100644 --- a/test/tests/kernels/hfem/lower-d-volumes.i +++ b/test/tests/kernels/hfem/lower-d-volumes.i @@ -17,17 +17,17 @@ [uhat] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] @@ -58,12 +58,12 @@ type = Reaction variable = uhat rate = '1' - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [uhat_coupled] type = CoupledForce variable = uhat - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 v = lambdab coef = '1' [] @@ -98,7 +98,7 @@ [lambdanorm] type = ElementL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/neumann.i b/test/tests/kernels/hfem/neumann.i index 61d156c18810..c9c4c63d2a51 100644 --- a/test/tests/kernels/hfem/neumann.i +++ b/test/tests/kernels/hfem/neumann.i @@ -17,7 +17,7 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] @@ -67,7 +67,7 @@ [lambdanorm] type = ElementL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/robin.i b/test/tests/kernels/hfem/robin.i index 9c1c85e53dcf..27af2d658acf 100644 --- a/test/tests/kernels/hfem/robin.i +++ b/test/tests/kernels/hfem/robin.i @@ -17,7 +17,7 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] @@ -61,7 +61,7 @@ [lambdanorm] type = ElementL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/robin_adapt.i b/test/tests/kernels/hfem/robin_adapt.i index 0966476405df..6c2bf6709845 100644 --- a/test/tests/kernels/hfem/robin_adapt.i +++ b/test/tests/kernels/hfem/robin_adapt.i @@ -18,7 +18,7 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -81,7 +81,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/robin_displaced.i b/test/tests/kernels/hfem/robin_displaced.i index 1e5a3be8fba5..d1c7638643fb 100644 --- a/test/tests/kernels/hfem/robin_displaced.i +++ b/test/tests/kernels/hfem/robin_displaced.i @@ -19,7 +19,7 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -103,7 +103,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 use_displaced_mesh = true [] [] diff --git a/test/tests/kernels/hfem/robin_dist.i b/test/tests/kernels/hfem/robin_dist.i index 47892e9871b5..9dbc3cf81c4d 100644 --- a/test/tests/kernels/hfem/robin_dist.i +++ b/test/tests/kernels/hfem/robin_dist.i @@ -19,7 +19,7 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -82,7 +82,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/tests b/test/tests/kernels/hfem/tests index cc92997a2eae..2fc9dc31bae8 100644 --- a/test/tests/kernels/hfem/tests +++ b/test/tests/kernels/hfem/tests @@ -121,4 +121,12 @@ mumps = true [] [] + + [mixed_side_types] + type = 'Exodiff' + input = '3d-prism.i' + exodiff = '3d-prism_out.e' + requirement = 'The system shall support hybrid finite element method (HFEM) calculations with mixed types of interior and boundary sides.' + mumps = true + [] [] diff --git a/test/tests/kernels/hfem/variable_dirichlet.i b/test/tests/kernels/hfem/variable_dirichlet.i index e26b6ea507e4..6f90c8559721 100644 --- a/test/tests/kernels/hfem/variable_dirichlet.i +++ b/test/tests/kernels/hfem/variable_dirichlet.i @@ -18,13 +18,13 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -39,7 +39,7 @@ [uhat] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -95,7 +95,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/kernels/hfem/variable_robin.i b/test/tests/kernels/hfem/variable_robin.i index a608dcacf0c8..6c9d5aed475b 100644 --- a/test/tests/kernels/hfem/variable_robin.i +++ b/test/tests/kernels/hfem/variable_robin.i @@ -18,19 +18,19 @@ [uhat] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 components = 2 [] [] @@ -61,13 +61,13 @@ [uhat_reaction] type = ArrayReaction variable = uhat - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 reaction_coefficient = rc [] [uhat_coupled] type = ArrayCoupledForce variable = uhat - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 v = lambdab is_v_array = true coef = '1 1' @@ -100,7 +100,7 @@ [] [rc] type = GenericConstantArray - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 prop_name = rc prop_value = '0.5 0.5' [] @@ -115,7 +115,7 @@ [lambdanorm] type = ElementArrayL2Norm variable = lambda - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/userobjects/side_uo_with_lowerd_use/side-uo-with-lower-d-use.i b/test/tests/userobjects/side_uo_with_lowerd_use/side-uo-with-lower-d-use.i index 02a2d7fd2c37..84488db38982 100644 --- a/test/tests/userobjects/side_uo_with_lowerd_use/side-uo-with-lower-d-use.i +++ b/test/tests/userobjects/side_uo_with_lowerd_use/side-uo-with-lower-d-use.i @@ -51,7 +51,7 @@ [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] diff --git a/test/tests/userobjects/side_user_object_no_boundary_error/lower_d_side_boundary.i b/test/tests/userobjects/side_user_object_no_boundary_error/lower_d_side_boundary.i index 52ffaaab5522..fb429f1ae7b2 100644 --- a/test/tests/userobjects/side_user_object_no_boundary_error/lower_d_side_boundary.i +++ b/test/tests/userobjects/side_user_object_no_boundary_error/lower_d_side_boundary.i @@ -17,17 +17,17 @@ [uhat] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [lambda] order = CONSTANT family = MONOMIAL - block = INTERNAL_SIDE_LOWERD_SUBDOMAIN + block = INTERNAL_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [lambdab] order = CONSTANT family = MONOMIAL - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [] @@ -58,12 +58,12 @@ type = Reaction variable = uhat rate = '1' - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 [] [uhat_coupled] type = CoupledForce variable = uhat - block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN + block = BOUNDARY_SIDE_LOWERD_SUBDOMAIN_EDGE2 v = lambdab coef = '1' []